ABOUT ME

Developer를 위한 Reference 블로그 입니다.

Today
Yesterday
Total
  • Proximity Search
    BackEnd/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

    댓글

Designed by Tistory.