Study: DeveloperTools(DevTool)/DevTool: NoSQL(Elastic, Mongo)

[Elastic] ELK Stack: Elasticsearch ์ •๋ฆฌ(NoSQL Document DB)

DrawingProcess 2022. 8. 31. 21:06
๋ฐ˜์‘ํ˜•
๐Ÿ’ก ๋ณธ ๋ฌธ์„œ๋Š” ELK Stack ์ค‘ 'Elasticsearch'์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋†“์€ ๊ธ€์ž…๋‹ˆ๋‹ค.
ํ‰์†Œ์— ELK Stack์— ๊ด€์‹ฌ์ด ์žˆ๊ฑฐ๋‚˜ Elasticsearch๋ฅผ ์ž…๋ฌธํ•˜๊ณ  ์‹ถ์œผ์‹  ๋ถ„๋“ค์„ ์ฐธ๊ณ  ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

1. Elasticsearch ์†Œ๊ฐœ

1.1 Elastic Stack (ELK Stack)

  • E(Elasticsearch): ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ๊ฒ€์ƒ‰
  • L(Logstash): ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘
    • ๋กœ๊ทธ ์Šคํƒœ์‹œ๋Š” ๋ฐ์ดํ„ฐ์˜ ์ž…๋ ฅ, ๋ณ€ํ™˜, ์ถœ๋ ฅ์„ ์‹ค์‹œ๊ฐ„ ํŒŒ์ดํ”„๋ผ์ธ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์—”์ง„.
    • ๋‹ค์–‘ํ•œ ์ž…๋ ฅ ์†Œ์Šค์—์„œ ๋™์‹œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘(Ingest)ํ•˜์—ฌ ๋ณ€ํ™˜ํ•œ ํ›„ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” "์Šคํƒœ์‹œ(Stash)-๋ณด๊ด€์†Œ"(Elasticsearch)๋กœ ์ „์†ก
  • K(Kibana): ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋ฐ ๋ฆฌํฌํŒ… ๋ถ„์„
    • ํ‚ค๋ฐ”๋‚˜๋Š” ์—˜๋ผ์Šคํ‹ฑ์„œ์น˜์™€ ์—ฐ๋™ํ•˜์—ฌ ๋™์ž‘ํ•˜๋Š” ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”(๋ฆฌํฌํŒ…) ๋ฐ ๋ถ„์„

1.2 Elasticsearch ํŠน์ง•

Name Elasticsearch 
Description A distributed, RESTful modern search and analytics engine based on Apache Lucene 
Primary database model Search engine
Secondary database models Document store
Spatial DBMS
Technical documentation www.elastic.co/­guide/­en/­elasticsearch/­reference/­current/­index.html
Developer Elastic
Initial release 2010
Current release 7.8.0, June 2020
License  Open Source (Lisence: Apache 2.0)
Cloud-based only  no
DBaaS offerings (sponsored links)   
Implementation language Java
Data scheme schema-free 
Typing  yes
Secondary indexes yes 
SQL  SQL-like query language
APIs and other access methods Java API
RESTful HTTP/JSON API

1.3 Elasticsearch ์„ธ๋ถ€ ํŠน์ง•

  • ์ „๋ฌธ(full-text) ๊ฒ€์ƒ‰, ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ์˜ ์‹ค์‹œ๊ฐ„ ๋ถ„์„
  • ๋ถ„์‚ฐ ์‹œ์Šคํ…œ
    • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…ธ๋“œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ‰์ธ(Indexing)ํ•˜๊ณ  ๊ฒ€์ƒ‰, ์ €์žฅ
      • ํ•ญ์ƒ ์ผ์ •ํ•œ ๋ฐ์ดํ„ฐ ๋ณต์‚ฌ๋ณธ์˜ ๊ฐœ์ˆ˜๋ฅผ ์œ ์ง€ํ•˜๋ฉฐ ๋†’์€ ๊ฐ€์šฉ์„ฑ๊ณผ ์•ˆ์ •์„ฑ ๋ณด์žฅ
    • ๋…ธ๋“œ๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์„ธ์Šค
    • ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ(data store)
      • ์ˆ˜๋ฐฑ ๋Œ€์˜ ์„œ๋ฒ„๋กœ scale out
      • PD ๊ธ‰์˜ ๋ฐ์ดํ„ฐ ์ €์žฅ
  • ์•„ํŒŒ์น˜ ๋ฃจ์”ฌ(Apache Lucene) ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ
    • ๊ณ ์„ฑ๋Šฅ ์ •๋ณด ๊ฒ€์ƒ‰(IR, Information retrieval) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
    • Java๋กœ ๊ตฌํ˜„๋œ ์•ˆ์ •์ ์ด๊ณ  ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ
    • Elastic Search = ๋ฃจ์”ฌ์˜ ๊ฒ€์ƒ‰/์ƒ‰์ธ์— ํ•„์š”ํ•œ API๋ฅผ ์ œ๊ณต + ๋ถ„์‚ฐ์ฒ˜๋ฆฌ๋ฅผ ๋น„๋กฏํ•ด ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋Šฅ

1.4 Elasticsearch ์‚ฌ์šฉ ์‚ฌ๋ก€

์œ„ํ‚คํ”ผ๋””์•„

  • ์ „๋ฌธ ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰
  • ์‹ค์‹œ๊ฐ„ ํƒ€์ดํ•‘ ๊ฒ€์ƒ‰
  • ์ถ”์ฒœ ๊ฒ€์ƒ‰์–ด ๊ธฐ๋Šฅ

์Šคํ… ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ

  • ๊ฒ€์ƒ‰ ๋‚ด์šฉ๊ณผ ๊ฒฐ๊ณผ๋ฅผ ํ†ตํ•ฉํ•ด ์œ ์‚ฌํ•œ ์งˆ๋ฌธ๊ณผ ํ•ด๋‹ต์„ ์—ฐ๊ฒฐ

๊นƒํ—ˆ๋ธŒ

  • 1,300์–ต ์ค„์ด ๋„˜๋Š” ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ

๋” ๊ฐ€๋””์–ธ

  • ๋ฐฉ๋ฌธ๊ฐ์˜ ๋กœ๊ทธ ๋ถ„์„
  • ์†Œ์…œ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ ๋ฐ ๋ถ„์„์œผ๋กœ ์‹ค์‹œ๊ฐ„ ์‘๋Œ€
  • ๊ธฐ์‚ฌ์— ๋Œ€ํ•œ ๋ฐ˜์‘ ๋ถ„์„

๊ณจ๋“œ๋งŒ ์‚ญ์Šค

  • ๋งค์ผ 5TB๊ฐ€ ๋„˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ
  • ์ฃผ์‹ ์‹œ์žฅ์˜ ๋ณ€๋™ ๋ถ„์„์— ์‚ฌ์šฉ

2. Elasticsearch ๊ตฌ์กฐ

2.1 Elasticsearch ์ €์žฅ ๊ตฌ์กฐ (RDB์™€ ๋น„๊ต)

๊ธฐ์กด์˜ RDB์™€๋Š” ๋‹ค๋ฅธ ์ €์žฅ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง

RDB table row column schema
Elasticsearch index document (Json) field mapping

2.1.1 index (= ์ธ๋ฑ์Šค = ์ƒ‰์ธ)

  • ๋‹ค์†Œ ๋น„์Šทํ•œ ํŠน์„ฑ์„ ๊ฐ€์ง„ document์˜ ๋ชจ์Œ
  • ์ด๋ฆ„(๋ชจ๋‘ ์†Œ๋ฌธ์ž์—ฌ์•ผ ํ•จ)์œผ๋กœ ์‹๋ณ„
  • ์ด ์ด๋ฆ„์€ ์ƒ‰์ธ์— ํฌํ•จ๋œ ๋ฌธ์„œ์— ๋Œ€ํ•œ ์ƒ‰์ธํ™”, ๊ฒ€์ƒ‰, ์—…๋ฐ์ดํŠธ, ์‚ญ์ œ ์ž‘์—…์—์„œ ํ•ด๋‹น ์ƒ‰์ธ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฐ ์“ฐ์ž„

2.1.2 type (= ํƒ€์ž… = ์œ ํ˜•)

  • ํ•˜๋‚˜์˜ ์ƒ‰์ธ์—์„œ ํ•˜๋‚˜ ์ด์ƒ์˜ ์œ ํ˜•์„ ์ •์˜๊ฐ€๋Šฅ
  • ์œ ํ˜•์ด๋ž€ ์ƒ‰์ธ์„ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋ถ„๋ฅ˜/๊ตฌ๋ถ„ํ•œ ๊ฒƒ์ด๋ฉฐ ๊ทธ ์˜๋ฏธ ์ฒด๊ณ„๋Š” ์ „์ ์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฐ์ •.
  • Elasticsearch 6.0๋ถ€ํ„ฐ๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ์— ํ•˜๋‚˜์˜ type๋งŒ ์ง€์›๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ดํ›„ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ์‹œ /$index/_doc/$id๋กœ ํ•ด์•ผํ•จ.
    • ๋ฌผ๋ก , ๊ฒ€์ƒ‰์„ ์œ„ํ•œ type์œผ๋กœ๋Š” _search, _bulk ๋“ฑ ๋‹ค์–‘ํ•˜๊ฒŒ ์‚ฌ์šฉํ•จ.

2.1.3 document (= ๋ฌธ์„œ)

  • JSON(JavaScript Object Notation) ํ˜•์‹
  • ํ•˜๋‚˜์˜ ์ƒ‰์ธ/์œ ํ˜•์— ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฌธ์„œ๋ฅผ ์ €์žฅ๊ฐ€๋Šฅ

2.2 Elasticsearch ์•„ํ‚คํ…์ณ ํŠน์ง•

๊ธฐ๋ณธ์ ์œผ๋กœ Elasticsearch๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ผ๋Š” ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ ์ œ๊ณต๋˜๋ฉฐ, ์•„๋ž˜์—์„œ ์ตœ์ƒ์œ„ ๊ฐœ๋…์ธ ํด๋Ÿฌ์Šคํ„ฐ๋ถ€ํ„ฐ ์ตœํ•˜์œ„ ๊ฐœ๋…์ธ ์„ธ๊ทธ๋จผํŠธ๊นŒ์ง€ ํ•˜ํ–ฅ์‹์œผ๋กœ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

2.2.1 ํด๋Ÿฌ์Šคํ„ฐ

  • ๊ธฐ๋ณธ์ ์œผ๋กœ Elasticsearch๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ผ๋Š” ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ ์ œ๊ณต
  • ํด๋Ÿฌ์Šคํ„ฐ๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฌผ๋ฆฌ์ ์ธ ๋…ธ๋“œ(์„œ๋ฒ„)๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ํฌ๊ด„ํ•˜๋Š” ํ†ตํ•ฉ ์ƒ‰์ธํ™” ๋ฐ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ์ œ๊ณต
  • ํด๋Ÿฌ์Šคํ„ฐ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ elasticsearch ๋ผ๋Š” ๊ณ ์œ ํ•œ ์ด๋ฆ„์œผ๋กœ ์‹๋ณ„
  • ๋™์ผํ•œ ํด๋Ÿฌ์Šคํ„ฐ ์ด๋ฆ„์„ ์„œ๋กœ ๋‹ค๋ฅธ ํ™˜๊ฒฝ์—์„œ ์žฌ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋จ

2.2.2 ๋…ธ๋“œ

  • ๋…ธ๋“œ๋Š” ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ผ๋ถ€์ด๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ธ๋ฑ์‹ฑ ๋ฐ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์— ์ฐธ์—ฌํ•˜๋Š” ๋‹จ์ผ ์„œ๋ฒ„
  • ๋…ธ๋“œ ๋‚ด์—” ๋ฃจ์”ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ด๋Š” ES์˜ ๊ทผ๊ฐ„์„ ์ด๋ฃจ๋Š” ํ•ต์‹ฌ ๋ชจ๋“ˆ
  • ๊ธฐ๋ณธ ์ด๋ฆ„์€ ์‹œ์ž‘ ์‹œ ๋…ธ๋“œ์— ์ง€์ •๋˜๋Š” ์ž„์˜ UUID(Universally Unique IDentifier)์ด๋ฉฐ, ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ์ •์˜ ๊ฐ€๋Šฅ
  • ๋‹จ์ผ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์›ํ•˜๋Š” ๋งŒํผ์˜ ๋…ธ๋“œ๋ฅผ ์†Œ์œ  ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋‹จ์ผ ๋…ธ๋“œ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ `elasticsearch`๋ผ๋Š” ์ด๋ฆ„์˜ ์ƒˆ๋กœ์šด ๋‹จ์ผ ๋…ธ๋“œ ํด๋Ÿฌ์Šคํ„ฐ ์ƒ์„ฑ

+ ๋…ธ๋“œ ๋ฐ”์ธ๋”ฉ

  • ๊ฐ™์€ ํด๋Ÿฌ์Šคํ„ฐ ์ด๋ฆ„์„ ๊ฐ€์ง€๊ณ  ์‹คํ–‰๋œ ๋…ธ๋“œ๋Š” ์ž๋™์œผ๋กœ ๋ฐ”์ธ๋”ฉ
  • 9200๋ฒˆ ๋ถ€ํ„ฐ REST API๋ฅผ ์œ„ํ•œ HTTP ํ†ต์‹  ํฌํŠธ๊ฐ€ ํ• ๋‹น
  • 9300๋ฒˆ ๋ถ€ํ„ฐ ๋…ธ๋“œ๊ฐ„ ๋ฐ”์ธ๋”ฉ์„ ์œ„ํ•œ ํฌํŠธ๋กœ ํ• ๋‹น

2.2.3 ์ƒค๋“œ & ๋ณต์‚ฌ๋ณธ(๋ฆฌํ”Œ๋ฆฌ์นด)

  • ์ƒค๋“œ (Shard, Primary Shard)
    • ์ƒ‰์ธ์€ ๋ฐฉ๋Œ€ํ•œ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ๊ฐ€๋Šฅํ•˜๊ธฐ์— ๋‹จ์ผ ๋…ธ๋“œ์˜ ๋””์Šคํฌ์—์„œ ์ˆ˜์šฉํ•˜์ง€ ๋ชปํ•˜๊ฑฐ๋‚˜ ๊ฒ€์ƒ‰ ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ ์†๋„๊ฐ€ ๋„ˆ๋ฌด ๋А๋ ค์ง
    • ์ƒค๋“œ๋Š” ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰์„ ์œ„ํ•ด ๊ตฌ๋ถ„๋˜๋Š” ์ตœ์†Œ ๋‹จ์œ„๋กœ ์ƒ‰์ธ์„ ์ƒค๋“œ๋กœ ๋ถ„ํ• ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณต
      • ์ž‘์—…์„ ์—ฌ๋Ÿฌ ์ƒค๋“œ์— ๋ถ„์‚ฐ ๋ฐฐ์น˜ํ•˜๊ณ  ๋ณ‘๋ ฌํ™”ํ•จ์œผ๋กœ์จ ์„ฑ๋Šฅ/์ฒ˜๋ฆฌ๋Ÿ‰ ํ–ฅ์ƒ
  • ๋ฆฌํ”Œ๋ฆฌ์นด (Replica, Replica Shard)
    • ์ƒ‰์ธ์˜ ์ƒค๋“œ์— ๋Œ€ํ•ด ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ณต์‚ฌ๋ณธ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋ฅผ '๋ฆฌํ”Œ๋ฆฌ์นด ์ƒค๋“œ(replica shard)' ์ค„์—ฌ์„œ '๋ฆฌํ”Œ๋ฆฌ์นด'๋ผ๊ณ  ํ•จ
    • ๋ฆฌํ”Œ๋ฆฌ์นด๋ฅผ ๋งŒ๋“œ๋Š” ๋ณต์ œ๊ฐ€ ์ค‘์š”ํ•œ ์ด์œ 
      • ๋ฆฌํ”Œ๋ฆฌ์นด ์ƒค๋“œ๋Š” ๊ทธ ์›๋ณธ์ธ ๊ธฐ๋ณธ ์ƒค๋“œ์™€ ๋™์ผํ•œ ๋…ธ๋“œ์— ๋ฐฐ์ •๋˜์ง€ ์•Š๊ธฐ์— ์ƒค๋“œ/๋…ธ๋“œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ Failover ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๋™์ž‘
        • Primary shard ๊ฐ€ ํฌํ•จ๋œ ๋…ธ๋“œ ๋‹ค์šด ์‹œ ES๋Š” replicas ์ค‘ ํ•˜๋‚˜๋ฅผ Primary ๋กœ ์Šน๊ฒฉํ•˜๊ณ  ๊ณ„์† ์„œ๋น„์Šค๋ฅผ ์ด์–ด๊ฐ
        • Failover(์‹œ์Šคํ…œ ๋Œ€์ฒด ์ž‘๋™): ํ‰์†Œ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋ฒ„์™€ ๊ทธ ์„œ๋ฒ„์˜ ํด๋ก  ์„œ๋ฒ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ฐ€ ์‚ฌ์šฉ ์„œ๋ฒ„๊ฐ€ ์žฅ์• ๋กœ ์‚ฌ์šฉ์ด ์–ด๋ ต๊ฒŒ ๋˜์—ˆ์„ ๊ฒฝ์šฐ ํด๋ก  ์„œ๋ฒ„๋กœ ๊ทธ ์ผ์„ ๋Œ€์‹  ์ฒ˜๋ฆฌํ•˜๊ฒŒ ํ•ด์„œ ๋ฌด์ •์ง€ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๊ฒŒ ํ•ด ์ฃผ๋Š” ๊ฒƒ์„ ์˜๋ฏธ
      • ๋ชจ๋“  ๋ฆฌํ”Œ๋ฆฌ์นด์—์„œ ๋ณ‘๋ ฌ ๋ฐฉ์‹์œผ๋กœ ๊ฒ€์ƒ‰์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ฒ€์ƒ‰ ๋ณผ๋ฅจ/์ฒ˜๋ฆฌ๋Ÿ‰์„ ํ™•์žฅ๊ฐ€๋Šฅ
  • ์ธ๋ฑ์Šค๋ณ„ ๊ธฐ๋ณธ ์ƒค๋“œ & ๋ฆฌํ”Œ๋ฆฌ์นด ๊ตฌ์„ฑ
    • ๊ธฐ๋ณธ์ ์œผ๋กœ Elasticsearch์˜ ๊ฐ ์ƒ‰์ธ์€ ๊ธฐ๋ณธ ์ƒค๋“œ 5๊ฐœ, ๋ฆฌํ”Œ๋ฆฌ์นด 1๊ฐœ ๊ฐ–์Œ
    • ๋”ฐ๋ผ์„œ ํด๋Ÿฌ์Šคํ„ฐ์— ์ตœ์†Œํ•œ 2๊ฐœ์˜ ๋…ธ๋“œ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ƒ‰์ธ์€ ๊ธฐ๋ณธ ์ƒค๋“œ 5๊ฐœ, ๋ฆฌํ”Œ๋ฆฌ์นด ์ƒค๋“œ 5๊ฐœ(์™„์ „ํ•œ ๋ฆฌํ”Œ๋ฆฌ์นด 1๊ฐœ)๋ฅผ ๊ฐ€์ง€๋ฏ€๋กœ ์ƒ‰์ธ๋‹น ์ด 10๊ฐœ์˜ ์ƒค๋“œ๊ฐ€ ์กด์žฌํ•˜๊ฒŒ ๋จ.

2.2.4 ์„ธ๊ทธ๋จผํŠธ(Segment)

  • document ๋“ค์€ ๋น ๋ฅธ ๊ฒ€์ƒ‰์— ์œ ๋ฆฌํ•˜๋„๋ก ์„ค๊ณ„๋œ ํŠน์ˆ˜ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์ €์žฅ๋จ
  • ์ƒค๋“œ ๋‚ด๋ถ€์—” Lucene ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํฌํ•จํ•˜๋ฉฐ, ์ด๋ฅผ ์ด์šฉํ•ด ๋Œ€๋ถ€๋ถ„์˜ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•จ
  • ๋ฃจ์”ฌ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒ‰์ธ๋˜๋ฉด ๋ฐ์ดํ„ฐ๋Š” ์ตœ์†Œ ๋‹จ์œ„์ธ ํ† ํฐ์œผ๋กœ ๋ถ„๋ฆฌ๋˜๊ณ , Segment ๋ผ๋Š” ํŠน์ˆ˜ํ•œ ํ˜•ํƒœ์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์ €์žฅ๋จ
  • ์„ธ๊ทธ๋จผํŠธ๋Š” ์ฝ๊ธฐ์— ์ตœ์ ํ™”๋œ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์—ญ์ƒ‰์ธ์ด๋ž€ ํŠน์ˆ˜ํ•œ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜๋˜์–ด ๋ฌผ๋ฆฌ์  ๋””์Šคํฌ์— ์ €์žฅ๋จ
  • ๊ฒ€์ƒ‰์—”์ง„ ํŠน์„ฑ์ƒ ์“ฐ๊ธฐ๋ณด๋‹ค ์ฝ๊ธฐ ๋น„์ค‘์ด ๋น„๊ต์  ๋†’๊ธฐ์—, ์ข€ ๋” ํšจ์œจ์ ์œผ๋กœ ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ณ ์•ˆ๋œ ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ๋ฐ”๋กœ ์—ญ์ƒ‰์ธ ๊ตฌ์กฐ์ž„

์ฐธ๊ณ 

๋ฐ˜์‘ํ˜•