[๐ŸŒŽelasticsearch] Elasticsearch์ด๋ž€?

Park Ji Youngยท2021๋…„ 1์›” 10์ผ
0

elasticsearch

๋ชฉ๋ก ๋ณด๊ธฐ
1/8
post-thumbnail


๋„ค์ด๋ฒ„ ๋ฐ ๊ตฌ๊ธ€์—์„œ ์›ํ•˜๋Š” ๋ฌธ์„œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ฉด ์ž˜ ๋‚˜์˜ต๋‹ˆ๋‹ค.
์–ด๋–ป๊ฒŒ ์ด๋Ÿฐ๊ฒŒ ๊ฐ€๋Šฅํ• ๊นŒ์š” ???

์ „๋ฌธ๊ฒ€์ƒ‰(Full-Text-Search ์ดํ•˜ FTS)์€ ๊ฒ€์ƒ‰ ๋‹จ์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํ•ด๋‹นํ•˜๋Š” ๋ฌธ์„œ์™€ "๊ด€๋ จ ๊นŠ์€" ์ž๋ฃŒ๋ฅผ ๋ณด์—ฌ์ฃผ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋‹จ์ˆœํ•œ ๋ฌธ์ž์—ด ์ผ์น˜ ์—ฐ์‚ฐ์œผ๋กœ๋Š” ๋„ค์ด๋ฒ„๋‚˜ ๊ตฌ๊ธ€์˜ ๊ฒ€์ƒ‰๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ๋Š” ์–ด๋ ต์Šต๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ FTS ์—์„œ๋Š” ๋ชจ๋“  ๋ฌธ์„œ์˜ ๋‹จ์–ด์™€ ๋ฌธ์žฅ์„ ๊ฒ€์ƒ‰ํ•˜์—ฌ ์ ์ˆ˜๋ฅผ ๋งค๊ธฐ๊ฒŒ๋ฉ๋‹ˆ๋‹ค.
์ด ๊ณผ์ •์—์„œ๋Š” ๋จธ์‹ ๋Ÿฌ๋‹๊ณผ ๊ฐ™์€ ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ ๊ณผ์ •์ด ํฌํ•จ๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋‹น์—ฐํžˆ ๋ชจ๋“  ๋ฌธ์„œ์˜ ๋‹จ์–ด์™€ ๋ฌธ์žฅ์„ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์ ์ˆ˜๋ฅผ ๋งค๊ธด ํ›„ ์ ์ˆ˜ ์ˆœ์„œ๋Œ€๋กœ ๋ณด์—ฌ์ฃผ๊ธฐ ๋•Œ๋ฌธ์—
๊ธฐ์กด์˜ ๋ฌธ์ž์—ด ์ผ์น˜ ์—ฐ์‚ฐ๋ณด๋‹ค ๋ณต์žกํ•œ ์—ฐ์‚ฐ์„ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์‹œ ๋งํ•˜์ž๋ฉด ์ „๋ฌธ๊ฒ€์ƒ‰์€ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๋ฌธ์„œ์™€ ๊ด€๋ จ๊นŠ์€ ๋ฌธ์„œ๋“ค์„ ๋ณด์—ฌ์ฃผ๋Š” ๊ธฐ์ˆ ์ด๋ผ ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.


๐Ÿฅฝ ElasticSearch

FTS ๊ธฐ๋Šฅ์€ ๋ถ„์„ ์—”์ง„์œผ๋กœ ์ œ๊ณต๋  ์ˆ˜๋„ ์žˆ๊ณ  DBMS์— ๊ธฐ๋Šฅ์ด ํƒ‘์žฌ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Lucene, Solr, ElasticSearch ๋“ฑ ๋‹ค์–‘ํ•œ ๋ถ„์„ ์—”์ง„์ด ์žˆ๊ณ 
Mongodb, Postgresql, AzureSQLDatabase ๋“ฑ ๋‹ค์–‘ํ•œ DBMS์—์„œ๋„ ์ง€์›ํ•˜๊ณ  ์žˆ์œผ๋‹ˆ ๋” ๊ฒ€์ƒ‰ํ•ด๋ณด๋Š” ๊ฑธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๊ทธ ์ค‘์— ElasticSearch ๋ฅผ ์†Œ๊ฐœํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

ElasticSearch ๋Š” FTS ๋ฅผ ์ง€์›ํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค ๊ฒ€์ƒ‰ ๋ฐ ๋ถ„์„ ์—”์ง„์ž…๋‹ˆ๋‹ค.
Apache Lucene์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋˜์—ˆ์œผ๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‚ฌํ•ญ๋“ค์„ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค.

  • ๋น ๋ฅด๋‹ค. Lucene์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋น ๋ฅด๋ฉฐ, ์‹ค์‹œ๊ฐ„์— ๊ฐ€๊นŒ์šด ์†๋„๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
  • ๋ถ„์‚ฐ์ ์ด๋‹ค. ์ƒค๋“œ๋ผ๊ณ  ํ•˜๋Š” ์ €์žฅํ˜•ํƒœ๋กœ ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ์— ๊ฑธ์ณ ๋ถ„์‚ฐ, ๋ณต์ œ๋˜์–ด ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ถ„์‚ฐ์ ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ„์†Œํ™”๋œ ๋ฐ์ดํ„ฐ Beats์™€ Logstash, Kibana ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์‹œ๊ฐํ™”ํ•˜๋ฉฐ ๋กœ๊ทธ, ์ธํ”„๋ผ ๋ฉ”ํŠธ๋ฆญ ๋ฐ์ดํ„ฐ์— ์‹ ์†ํžˆ ์ ‘์†๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

ElasticSearch ๋Š” ๋˜ํ•œ ๋‹ค์Œ ์–ธ์–ด๋ฅผ ์œ„ํ•ด์„œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ณต์‹์ ์œผ๋กœ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • ์ž๋ฐ”
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
  • Go
  • .NET(C#)
  • PHP
  • Pearl
  • Python
  • Ruby

๐Ÿ˜

ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ Full Text Search ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•˜์—ฌ ์ฐพ๋‹ค๊ฐ€ ElasticSearch ๋ฅผ ์ฐพ๊ฒŒ ๋˜์—ˆ๊ณ 
ElasticSearch ์— ํฅ๋ฏธ๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋˜์—ˆ๋„ค์š”.

์ €๋ณด๋‹ค ์ •๋ฆฌ๋ฅผ ์ž˜ํ•œ ๊ฐ€์ด๋“œ๋ถ์ด ์žˆ์œผ๋‹ˆ ๊ผญ ๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๋‹ค์Œ ์‹œ๊ฐ„์—๋Š” ElasticSearch ๋ฅผ Ubuntu์— ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ฐพ์•„๋ต™๊ฒ ์Šต๋‹ˆ๋‹ค.

profile
I am two cat's father

0๊ฐœ์˜ ๋Œ“๊ธ€