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" }
"name": "Apple 2025 맥북 에어 13 M4 10코어""name": "Apple 2024 에어팟 4세대""name": "Apple 2024 아이패드 mini A17 Pro"products의 name 필드에 대한 역인덱스토큰(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] |
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] |
id=3 → id=2 → id=1)으로 도큐먼트를 조회한다. 일반적으로 검색어와 관련성이 높으면 높을수록 score(점수)가 높게 측정된다.문서 내에서 검색어가 얼마나 자주 등장하냐→ 많이 등장할수록 점수↑
검색어가 전체 문서 중 얼마나 희귀하냐→ 희귀할수록 점수↑ (흔한 단어일수록 점수↓)
문서(필드)가 짧을수록 점수↑→ 검색어가 짧은 문서에서 등장하면 더 관련성 높다고 판단
Elasticsearch가 역인덱스(Inverted Index)의 기능을 가지고 있기 때문에, 단어의 순서랑 상관없이 도큐먼트를 조회해올 수 있는 것이다. 참고) 이런 작동 구조는 데이터 타입의text타입에 한해서만 적용된다.