[Elasticsearch] ์ธ๋ฑ์Šค

[์›๋ณธ ๋งํฌ]

์ธ๋ฑ์Šค๋Š” ์—˜๋ผ์Šคํ‹ฑ์„œ์น˜์—์„œ ๊ฒ€์ƒ‰์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์žˆ์–ด ๊ฐ€์žฅ ์ค‘์‹ฌ์ด ๋˜๋Š” ์š”์†Œ๋‹ค.
๋ง ๊ทธ๋Œ€๋กœ ๊ฒ€์ƒ‰์„ ์œ„ํ•œ ์ธ๋ฑ์Šค ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฐ€์žฅ ํฐ ํ‹€์ธ ๊ฒƒ์ด๋‹ค.

๊ณจ์ž๋Š” ์ด๋ ‡๋‹ค.
๊ฒ€์ƒ‰์šฉ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋Š” ์ธ๋ฑ์Šค๋ฅผ ์ฒ˜์Œ ์ƒ์„ฑํ• ๋•Œ ์ง€์ •ํ•ด์ฃผ๊ณ ,
๊ฒ€์ƒ‰์šฉ๋ฐ์ดํ„ฐ๋„ ๊ทธ๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด๋‘” ์ธ๋ฑ์Šค์— ๋„ฃ์–ด๋‘๊ณ ,
๊ฒ€์ƒ‰์„ ํ•  ๋•Œ๋„ ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด์„œ ์กฐ๊ฑด์„ ๊ฑธ๊ณ  ๊บผ๋‚ด์˜ค๋Š” ๊ฒƒ์ด๋‹ค.

๋งŒ์•ฝ ์–ด๋–ป๊ฒŒ๋“  ์—˜๋ผ์Šคํ‹ฑ์„œ์น˜ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ–ˆ๋‹ค๋ฉด, ๋Œ€์ถฉ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ ‘์† ๊ฐ€๋Šฅํ•œ ์—˜๋ผ์Šคํ‹ฑ ๋งํฌ๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

์ด ๋งํฌ์™€ ์ธ์ฆํ† ํฐ์„ ํ†ตํ•ด์„œ Restful API๋กœ ์—˜๋ผ์Šคํ‹ฑ์„œ์น˜๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค.


๋กœ๊ทธ์ธ ํ›„์— ์ ‘์†ํ• ๋•Œ ๋‚ ๋ฆฌ๋Š” ์ €๊ฑธ
๊บผ๋‚ด์“ฐ๋ฉด ๋œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  .../_cat/indices ๋งํฌ๋กœ ์ ‘์†์„ ํ•˜๋ฉด, ์ธ๋ฑ์Šค ๋ชฉ๋ก์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.

๋งŽ๋‹ค.




์ธ๋ฑ์Šค ์ƒ์„ฑ

์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉด "PUT /์ธ๋ฑ์Šค๋ช…"์˜ ํ˜•ํƒœ๋กœ API๋ฅผ ํ˜ธ์ถœํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
๋‚˜๋Š” ํ‰์†Œ์— ์ฆ๊ฒจ์“ฐ๋˜ VSCODE ํ™•์žฅ Rest client๋กœ API๋ฅผ ์ฃผ๋กœ ์˜๋Š”๋ฐ, ํŽธํ•œ๊ฑธ๋กœ ์•„๋ฌด๊ฑฐ๋‚˜ ์“ฐ๋ฉด ๋œ๋‹ค.

@host = ํ˜ธ์ŠคํŠธ...
@token = ์œ„์— ํ† ํฐ...

###
PUT https://{{host}}/products
Content-Type: application/json
Authorization: {{token}}

{
    "settings": {},
    "mappings": {
        "properties": {
            "product_id": { "type": "integer" },
            "product_name": { "type": "text" },
            "shop_id": { "type": "integer" },
            "shop_name": { "type": "text" },
            "color": { "type": "text" },
            "brand_id": { "type": "integer" },
            "brand_name": { "type": "text" },
            "description": { "type": "text" },
            "category_names": { "type": "text" }
        }
    }
}
###

์šฐ์„  Authorization ํ—ค๋”์— ์ธ์ฆํ† ํฐ์„ ๋„ฃ์–ด์ค˜์•ผ ํ•œ๋‹ค.
setting์€ ์žก๋‹คํ•œ ์ธ๋ฑ์Šค ์„ค์ •๋“ค์ด ๋“ค์–ด๊ฐ€๋Š” ๋ถ€๋ถ„์ธ๋ฐ ๊ทธ๊ฑด ๋‚˜์ค‘์— ๋ณด์ž.
mappings์˜ properties๊ฐ€ ์ธ๋ฑ์Šค์˜ ๋ชฉ๋ก์„ ์ง€์ •ํ•ด์ฃผ๋Š” ๋ถ€๋ถ„์ด๋‹ค.
์ €๋ ‡๊ฒŒ ์žก์•„๋†“์€ ์†์„ฑ๋“ค์€ ์ „๋ถ€ ๊ฒ€์ƒ‰์กฐ๊ฑด์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

์ €๋ ‡๊ฒŒ ํ•ด์„œ ๋ฌธ์ œ์—†์ด ํ˜ธ์ถœ๋œ๋‹ค๋ฉด

์œ„์™€ ๊ฐ™์ด ์‘๋‹ต์ด ์˜ฌ ๊ฒƒ์ด๋‹ค.

์ •์ƒ์ ์œผ๋กœ ์ƒ์„ฑ์ด ๋๋‹ค๋ฉด ์ธ๋ฑ์Šค ๋ชฉ๋ก์—์„œ๋„ ์ถ”๊ฐ€๊ฐ€ ๋  ๊ฒƒ์ด๊ณ 

"GET /์ธ๋ฑ์Šค๋ช…"์˜ ํ˜•ํƒœ๋กœ ์ ‘๊ทผํ•ด์„œ ์ธ๋ฑ์Šค ์ •๋ณด๋ฅผ ์กฐํšŒํ•˜๋Š”๊ฒŒ ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.




์ธ๋ฑ์Šค ์žฌ๋ฐฐํฌ (๋ฌด์ค‘๋‹จ)

์ธ๋ฑ์Šค์—๋Š” ์ˆ˜์ •์ด๋ผ๋Š” ๊ฐœ๋…์ด ๋ณ„๋กœ ์—†๋‹ค.
์ˆ˜์ • ๊ธฐ๋Šฅ ์ž์ฒด๊ฐ€ ์•„์ฃผ ์ œํ•œ์ ์œผ๋กœ ์ œ๊ณต๋˜๊ธฐ๋„ ํ•˜๊ณ  ๊ถŒ์žฅ๋˜์ง€๋„ ์•Š๋Š”๋‹ค.

๊ทธ๋ž˜์„œ ์ธ๋ฑ์Šค์˜ ๊ตฌ์„ฑ์ด๋‚˜ ํ˜•ํƒœ๊ฐ€ ๋ฐ”๋€” ์ผ์ด ์žˆ๋‹ค๋ฉด, ์ธ๋ฑ์Šค๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ์ธ๋ฑ์Šค๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“  ๋‹ค์Œ์— ๊ต์ฒด๋ฅผ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค.

ํฐ ๋ฌธ์ œ ์—†์ด ๊ต์ฒด๋ฅผ ํ•˜๋ ค๋ฉด alias๋ฅผ ๋ฏธ๋ฆฌ ๋ถ™์—ฌ๋‘ฌ์•ผ ํ•œ๋‹ค.
ํด๋ผ์ด์–ธํŠธ๋“ค์€ ์‹ค์ œ ์ธ๋ฑ์Šค๋ช…์ด ์•„๋‹ˆ๋ผ alias๋ฅผ ๋ฐ”๋ผ๋ณด๊ฒŒ ํ•˜๊ณ , alias๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒƒ๋งŒ ๋ฐ”๊พธ๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
alias๋Š” "POST /_aliases" API๋ฅผ ํ†ตํ•ด ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค.
๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•ด๋‘๋ฉด products๋ผ๋Š” ์ธ๋ฑ์Šค์— release๋ผ๋Š” ๋ณ„๋ช…์„ ๋ถ™์—ฌ์ฃผ๊ฒŒ ๋œ๋‹ค.

๊ทธ๋Ÿผ ์ด์ œ ์ €๊ฑธ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ต์ฒด์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.
๊ต์ฒดํ•  ์ธ๋ฑ์Šค๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค๊ณ 

ํ•„์š”ํ•˜๋‹ค๋ฉด ๊ธฐ์กด ์ธ๋ฑ์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ reindex๋กœ ์˜ฎ๊ฒจ์ค€๋‹ค.
products์˜ ๊ฒ€์ƒ‰ ๋ฐ์ดํ„ฐ๋ฅผ products2์— ๋ฐ˜์˜์‹œํ‚ค๊ณ  ์‹ถ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•˜๋ฉด ๋œ๋‹ค.

์ด๊ฑด ๋ถ€ํ•˜๊ฐ€ ๊ต‰์žฅํžˆ ๋งŽ์ด ๊ฑธ๋ฆฌ๋Š” ์ž‘์—…์ด๋‹ˆ ์ƒํ™ฉ๋ด์„œ ์ž˜ ํ•ด์•ผํ•œ๋‹ค.
๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์œผ๋ฉด ์ด๊ฑฐ ํ•˜๋‹ค ๋ป—์„ ์ˆ˜๋„ ์žˆ๋‹ค.

๋ฌธ์ œ์—†์ด ์ธ๋ฑ์Šค ์ค€๋น„๊ฐ€ ๋‹ค ๋๋‹ค๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ต์ฒด๋ฅผ ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.
๊ทธ๋ƒฅ ๋ณ„๊ฑฐ ์—†๋‹ค.
์•„๊นŒ์ฒ˜๋Ÿผ ๋ณ„๋ช…์„ ๋ถ™์—ฌ์ฃผ๋˜, ๊ธฐ์กด ๋ณ„๋ช…์„ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฑฐ์˜ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ๊ฒƒ์ผ ๋ฟ์ด๋‹ค.

์ด๋Ÿฌ๋ฉด ์ด์ œ release๊ฐ€ ๊ต์ฒด๋œ products2๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ๋œ๋‹ค.

๊ธฐ์กด์˜ product ์ธ๋ฑ์Šค๋Š” ์ง€์šฐ๋“  ๋ญ˜ ํ•˜๋“  ๋ง˜๋Œ€๋กœ ํ•ด๋„ ๋œ๋‹ค.

์•„ ๊ทธ๋ฆฌ๊ณ  alias ๋ชฉ๋ก์€ /_cat/aliases๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

release๊ฐ€ product2๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.


์ด์™ธ์— ์ธ๋ฑ์Šค๋ฅผ ์ข…๋ฃŒ์‹œํ‚ค๋Š”๊ฑด
"POST /์ธ๋ฑ์Šค๋ช…/_close"

์ธ๋ฑ์Šค๋ฅผ ๋‹ค์‹œ ์‹คํ–‰์‹œํ‚ค๋Š”๊ฑด
"POST /์ธ๋ฑ์Šค๋ช…/_settings"

์ธ๋ฑ์Šค๋ฅผ ์‚ญ์ œํ•˜๋Š”๊ฑด
"DELETE /์ธ๋ฑ์Šค๋ช…"

๋“ฑ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
์‚ญ์ œ๋Š” ํ•œ๋ฒˆ ํ•˜๋ฉด ๋Œ์ดํ‚ฌ ์ˆ˜ ์—†์œผ๋‹ˆ ์‹ ์ค‘ํ•˜๊ฒŒ ํ•˜๊ธธ ๋ฐ”๋ž€๋‹ค.

๋‹ค์Œ ํฌ์ŠคํŠธ์—์„œ๋Š” ์ธ๋ฑ์Šค์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๋Š” ๊ฒƒ๊ณผ ๊ฒ€์ƒ‰๋ฒ• ๋“ฑ์„ ๋‹ค๋ค„๋ณด๊ฒ ๋‹ค.



์ฐธ์กฐ
https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-indices.html
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-index.html