[Meilisearch] ์ธ๋ฑ์ค
์ธ๋ฑ์ค๋ meilisearch์์ ๊ฒ์์ ๊ธฐ๋ณธ์ด ๋๋ ๋จ์๋ค.
RDB์ ํ ์ด๋ธ, MongoDB์ ์ปฌ๋ ์ ๋ฑ๊ณผ ๋์์ด ๋๋ฉฐ, ์ฌ๋ฌ๊ฐ์ ๋ฐ์ดํฐ๊ฐ ๊ฐ๊ฐ์ ํ(document)์ผ๋ก ๋ค์ด๊ฐ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ๊ฐ๊ฐ์ ์ธ๋ฑ์ค๋ ๊ณ ์ ํ ์๋ณ์=uid๋ฅผ ๊ฐ์ง๋ฉฐ, ๊ทธ ์์ ๋ฐ์ดํฐ๋ค์ด ๊ฐ์ง ๊ณ ์ ํค์ ๋ํ ๋ช
์ธ๋ง์ ๊ฐ์ง๋ค.
Elasticsearch์ ๋น๊ตํ๋ฉด ์๋นํ ๋จ์ถํ ํธ์ด๋ค.
๊ทธ๋์ ์ธ๋ฑ์ค ์์ฑ API๋ฅผ ์ฌ์ฉํ๋ค๋ฉด, ๋ค์๊ณผ ๊ฐ์ ํํ๊ฐ ๋๋ค.
foo๋ผ๋ ์ด๋ฆ์ ์ธ๋ฑ์ค๋ฅผ ๋ง๋ค๋, ๊ทธ ์์ ๋ฐ์ดํฐ๋ค์ id๋ผ๋ ํ๋๋ฅผ ๊ธฐ๋ณธํค๋ก ์ ์ฅ๋๋ค๋ ๊ฒ์ด๋ค.
primaryKey๋ฅผ ๋ฐ๋ก ์ค์ ํ์ง ์์ผ๋ฉด "id"๋ก ๋๋๋ ์ฒซ๋ฒ์งธ ํ๋๋ฅผ ์ฐพ์์ ๊ธฐ๋ณธํค๋ก ์ผ๋๋ค.
GET /indexes api๋ฅผ ์ฌ์ฉํ๋ฉด ์ธ๋ฑ์ค ๋ชฉ๋ก์ ํ์ธํ ์ ์๋ค.

๋ฒ์ ๊ด๋ฆฌ
์ธ๋ฑ์ค๋ ์๋น์ค ๊ตฌ์กฐ๊ฐ ๋ณํํจ์ ๋ฐ๋ผ ๋น์ฐํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ๋ฌ๋ผ์ง๋ ์ผ์ด ๋ฐ์ํ๋ค.
meilisearch๋ ์ด์ ๋ํ ๋ช ํํ ๊ฐ์ด๋๋ผ์ธ ๊ฐ์๊ฑธ ์ ๊ณตํ์ง ์์ผ๋, elasticsearch์ฒ๋ผ ์ธ๋ฑ์ค๋ฅผ ๋ฒ์ ๋จ์๋ก ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ ๊ฒ๋ ๊ด์ฐฎ์ผ๋ฆฌ๋ผ๊ณ ๋ณธ๋ค.

์ธ๋ฑ์ค ๊ต์ฒด
์ฌ์ฉ์ฌ๋ก์ ๋ฐ๋ผ ์กฐ๊ธ์ฉ ๋ค๋ฅด์ง๋ง, ์๋ํฌ์ธํธ๋ฅผ ํน์ ์ธ๋ฑ์ค๋ช ์ผ๋ก ๊ณ ์ ํด๋์ ์ํ์์ ์ค์ ๋ก ๊ฐ๋ฆฌํค๋ ์ธ๋ฑ์ค๋ฅผ ๋ฐ๊พธ๊ณ ์ถ์ ๋๊ฐ ์๋ค. search engine์ ๋๊ธฐํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์์๊ฑฐ๋ ํ ๋๋ ์ข ์ข ๊ทธ๋ด ๋๊ฐ ์๋ค.
elasticsearch๋ index alias ๊ฐ์๊ฑธ ์จ์ ๋ค์ดํ์ ์์ด ์ธ๋ฑ์ค๋ฅผ ๊ต์ฒดํ๋๊ฒ ์ข ํธํ๋ฐ, ๊ทธ๊ฑด ์๊ณ index swap์ ํตํด์ ๋ชฉ์ ์ ์ด๋์ ๋๋ ๋ฌ์ฑํ ์ ์์ ๊ฒ ๊ฐ๋ค.
์ฝ๋๋ก ํํํ๋ฉด ์ด๋ฐ ๋๋์ด๋ค.
"item"์ด๋ผ๋ ์ธ๋ฑ์ค๊ฐ ์ด๋ฏธ ์๋ ์ํ์์ ์ ์ธ๋ฑ์ค๋ฅผ ๋ง๋ค๊ณ ๊ต์ฒดํ๋ ์ฝ๋๋ค.
swap Index๋ ์์์ ์ผ๋ก ์คํ๋๋ ๋์์ด๊ธฐ์, ๊ฑฑ์ ํ ๊ฒ์ ๋ณ๋ก ์๋ค.
์ฐธ์กฐ
https://www.meilisearch.com/docs/learn/core_concepts/indexes
https://www.meilisearch.com/docs/reference/api/indexes#swap-indexes