기존 products 인덱스 삭제
# 기존 products 인덱스 삭제
DELETE /products
인덱스 생성
[기존에 배웠던 방법]
# 인덱스 생성
PUT /products
# 매핑 정의
PUT /products/_mappings
{
"properties": {
"name": {
"type": "text"
}
}
}
[조금 더 편리한 방법]
# 인덱스 생성 + 매핑 정의 (자주 쓰이니 정리해두자!)
PUT /products
{
"mappings": {
"properties": {
"name": {
"type": "text"
}
}
}
}
인덱스 잘 생성됐는 지 확인
# 인덱스 잘 생성됐는 지 확인
GET /products
도큐먼트 삽입
# 데이터 넣기
POST /products/_create/1
{
"name": "Apple 2025 맥북 에어 13 M4 10코어"
}
POST /products/_create/2
{
"name": "Apple 2024 에어팟 4세대"
}
POST /products/_create/3
{
"name": "Apple 2024 아이패드 mini A17 Pro"
}
도큐먼트 조회
# 'Apple 2024 아이패드'로 검색
GET /products/_search
{
"query": {
"match": {
"name": "Apple 2024 아이패드"
}
}
}
응답값
{
"took": 7,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 3,
"relation": "eq"
},
"max_score": 1.5471337,
"hits": [
{
"_index": "products",
**"_id": "3",
"_score": 1.5471337,
"_source": {
"name": "Apple 2024 아이패드 mini A17 Pro"
}**
},
{
"_index": "products",
**"_id": "2",
"_score": 0.6860854,
"_source": {
"name": "Apple 2024 에어팟 4세대"
}**
},
{
"_index": "products",
**"_id": "1",
"_score": 0.12180668,
"_source": {
"name": "Apple 2025 맥북 에어 13 M4 10코어"
}**
}
]
}
}
score가 높은 순으로 도큐먼트가 조회됐다. score가 대략적으로 어떻게 계산됐는 지 이전 강의의 내용을 다시 떠올려보자.
[복습]
Apple 2024 아이패드라고 검색하면 역인덱스를 활용해 일치하는 단어가 많은 도큐먼트를 우선적으로 조회한다.
| 토큰(token) | 도큐먼트 id |
|---|---|
| Apple | [1, 2, 3] |
| 2025 | [1] |
| 맥북 | [1] |
| 에어 | [1] |
| 13 | [1] |
| M4 | [1] |
| 10코어 | [1] |
| 2024 | [2, 3] |
| 에어팟 | [2] |
| 4세대 | [2] |
| 아이패드 | [3] |
| mini | [3] |
| A17 | [3] |
| Pro | [3] |
이와 같은 Elasticsearch의 자체적인 로직으로 **score(점수)**를 매겨 score가 높은 순(id=3 → id=2 → id=1)으로 도큐먼트를 조회한다.
<aside> 👨🏻🏫
다음 강의에서는 역인덱스를 생성하는 과정을 조금 더 깊이 파헤쳐보자.
</aside>