-
Proximity SearchBackEnd/Elasticsearch API 2025. 3. 31. 05:00반응형
구문(Phrase) 쿼리와 근접 쿼리(Proximity Search)는 검색 방식에서 중요한 차이점을 가집니다.
구문 쿼리는 검색어의 정확한 순서와 연속성을 요구합니다. 예를 들어 "New York"이라는 구문 쿼리는 두 단어가 정확히 같은 순서로 붙어있는 문서만 찾습니다. 이는 Elasticsearch에서 match_phrase 쿼리로 구현됩니다.
반면, 근접 쿼리는 더 유연한 검색을 제공합니다. 검색어들이 정확한 순서나 인접성을 갖지 않아도 되며, 지정된 거리(슬롭/slop) 내에 있으면 결과로 반환됩니다.Proximity Search
match_phrase 쿼리에 slop 파라미터를 추가하여 Proximity Search를 수행합니다.
GET /my_index/_search { "query": { "match_phrase": { "content": { "query": "quick brown fox", "slop": 2 } } } }
- 해당 쿼리는 "quick", "brown", "fox" 단어들이 지정된 순서로 나타나되, 최대 2개의 단어가 그 사이에 올 수 있음을 의미합니다.
slop 파라미터
- slop은 검색어 간 허용되는 최대 단어 수를 지정합니다.
- slop: 0은 정확한 구문 일치를 의미합니다.
- slop 값이 클수록 더 유연한 검색이 가능하지만, 관련성이 떨어질 수 있습니다.
단어 순서 무관 검색
GET /my_index/_search { "query": { "match_phrase": { "text": { "query": "search Elasticsearch", "slop": 2 } } } }
- 해당 쿼리는 "Elasticsearch search" 또는 "search using Elasticsearch"와 같은 구문을 찾을 수 있습니다.
[참고자료]
반응형'BackEnd > Elasticsearch API' 카테고리의 다른 글
Synonym Search (0) 2025.04.03 Fuzzy Match Query (0) 2025.04.01 Aggregation (0) 2025.03.30 Join Query (0) 2025.03.29 Nested Query (0) 2025.03.23