์ด ๋ฌธ์๋ Elasticsearch๋ฅผ ์ฒ์ ์ ํ๋ ์ฌ๋๋ค์ ์ํด ์ธ๋ฑ์ค, ๋งคํ, ๊ตฌ์กฐ ๋ฑ์ ์ค๋ช
ํฉ๋๋ค.
์์ URL์ http://localhost:9200/contents
๊ธฐ์ค์
๋๋ค.
1. ๐ /contents
๋ ๋ฌด์์ธ๊ฐ?
http://localhost:9200/contents
์์ contents
๋ ์ธ๋ฑ์ค(index) ์ด๋ฆ์
๋๋ค.- Elasticsearch์์ ์ธ๋ฑ์ค๋ ๋ฌธ์๋ค์ ์งํฉ์
๋๋ค.
- RDB๋ก ๋น์ ํ๋ฉด **ํ
์ด๋ธ(table)**์ ํด๋นํฉ๋๋ค.
2. ๐งฑ Elasticsearch ๊ตฌ์กฐ ์์ฝ
Elasticsearch๋ ๋ค์๊ณผ ๊ฐ์ ๊ณ์ธต ๊ตฌ์กฐ๋ก ๋์ด ์์ต๋๋ค:
ํด๋ฌ์คํฐ
โโโ indices (๋ณต์ํ, ์ฌ๋ฌ ์ธ๋ฑ์ค)
โโโ index (์: contents)
โโโ documents (JSON ํ์ ๋ฐ์ดํฐ)
โโโ fields (๊ฐ ๋ฐ์ดํฐ์ ์์ฑ)
RDB ์ฉ์ด | Elasticsearch ์ฉ์ด |
---|
Database | Cluster |
Table | Index |
Row | Document |
Column | Field |
3. ๐ ๋งคํ(Mapping) ๊ฐ๋
๊ณผ _mapping
์ ์ญํ
- **๋งคํ(mapping)**์ด๋ ์ธ๋ฑ์ค ๋ด ๋ฌธ์์ ํ๋ ๊ตฌ์กฐ์ ํ์
์ ์ ์ํ ๊ฒ์
๋๋ค.
- ์๋ฅผ ๋ค์ด ํ๋๊ฐ
text
์ธ์ง keyword
์ธ์ง, ๋ ์ง์ธ์ง ์ซ์์ธ์ง๋ฅผ ์ ์ํฉ๋๋ค. - RDB๋ก ์น๋ฉด ํ
์ด๋ธ์ ์คํค๋ง(schema) ์ ๋น์ทํ ๊ฐ๋
์
๋๋ค.
โ
๋งคํ ํ์ธ ๋ฐฉ๋ฒ
GET http://localhost:9200/contents/_mapping?pretty
- ์ ์์ฒญ์
contents
์ธ๋ฑ์ค์ ๋งคํ ์ ๋ณด๋ฅผ ํ์ธํ๋ API์
๋๋ค.
๐ ๋ํ์ ์ธ ํ๋ ํ์
ํ๋ ํ์
| ์ค๋ช
|
---|
text | ๊ฒ์์ฉ ํ
์คํธ (analyzer๋ก ํํ์ ๋ถ์ ๊ฐ๋ฅ) |
keyword | ํํฐ, ์ ๋ ฌ, ์ง๊ณ์ฉ ๋ฌธ์์ด (๋ถ์ ๋ถ๊ฐ) |
integer | ์ ์ํ ์ซ์ |
float | ์ค์ํ ์ซ์ |
date | ๋ ์ง/์๊ฐ ์ ๋ณด |
boolean | true/false ๊ฐ |
โ
์ ๋ฆฌ ์์ฝ
ํญ๋ชฉ | ์ค๋ช
|
---|
/contents | ์ธ๋ฑ์ค ์ด๋ฆ (RDB์ ํ
์ด๋ธ๊ณผ ์ ์ฌ) |
์ธ๋ฑ์ค ๊ตฌ์กฐ | ํด๋ฌ์คํฐ โ ์ธ๋ฑ์ค โ ๋ฌธ์ โ ํ๋ |
๋งคํ(Mapping) | ๋ฌธ์์ ํ๋ ๊ตฌ์กฐ ์ ์ (ํ์
, ๋ถ์๊ธฐ ๋ฑ) |
_mapping API | ์ธ๋ฑ์ค์ ํ์ฌ ๋งคํ ์ ๋ณด๋ฅผ ํ์ธํ๋ ์๋ํฌ์ธํธ |