인덱스 생성하기
PUT /products
참고) 이렇게 배운 기능을 계속해서 써먹어봐야 Elasticsearch에 금방 익숙해질 수 있다.
매핑 정의하기
PUT /products/_mappings
{
"properties": {
"name": {
"type": "text"
}
}
}
**참고) 매핑(mapping)**의 타입이나 특징에 대해서는 나중에 다시 한 번 자세히 다룰 예정이다.
도큐먼트 삽입
# 도큐먼트 삽입
# POST /{인덱스명}/_doc
POST /products/_doc
{
"name": "Apple 2025 맥북 에어 13 M4 10코어"
}
도큐먼트가 잘 저장됐는지 확인하기
# 모든 도큐먼트 조회
GET /products/_search
도큐먼트 검색해보기
# 특정 조건을 만족하는 도큐먼트 조회
# (name 필드에 '맥북 에어 13 M4'가 포함된 도큐먼트 조회)
GET /products/_search
{
"query": {
"match": {
"name": "맥북 에어 13 M4"
}
}
}
참고) 특정 조건을 만족하는 도큐먼트를 조회할 때 사용하는 match 쿼리는 정말 많이 사용되니 까먹지 않게 따로 정리해두자.
응답값
{
"took": 4,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 1,
"relation": "eq"
},
"max_score": 1.1507283,
# 조건을 만족하는 도큐먼트
"hits": [
{
# _index : 인덱스명
**"_index": "products",**
# 데이터를 저장하면서 자동으로 생성된 '랜덤 고유 ID'
**"_id": "hU2MZ5YB5XfvBpblxof6",**
"_score": 1.1507283,
# _source : 저장한 데이터가 들어있는 필드
**"_source": {
"name": "Apple 2025 맥북 에어 13 M4 10코어"
}**
}
]
}
}
참고) 지금으로써는 주석으로 표시한 필드의 의미만 해석할 수 있으면 된다. (파레토의 법칙)
단어의 순서를 바꿔서 검색해보기
GET /products/_search
{
"query": {
"match": {
"name": "맥북 13 에어 M4"
}
}
}
응답값
{
"took": 3,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 1,
"relation": "eq"
},
"max_score": 1.1507283,
"hits": [
{
"_index": "products",
"_id": "hU2MZ5YB5XfvBpblxof6",
"_score": 1.1507283,
"_source": {
"name": "Apple 2025 맥북 에어 13 M4 10코어"
}
}
]
}
}
분명 단어의 순서를 바꿔서 검색했는데도 Elasticsearch가 찰떡같이 도큐먼트를 조회했다.
<aside> 👨🏻🏫
다음 강의에서는 어떻게 Elasticsearch가 단어의 순서를 바꿨는데도 도튜먼트를 조회해올 수 있는 지에 대한 원리를 알아보자.
</aside>