Prefix 쿼리

Prefix 쿼리

특정 접두어로 시작하는 용어를 검색하려면 prefix 쿼리를 사용해요. 예를 들어 speaker 필드에서 KING H로 시작하는 용어를 가진 문서를 찾을 수 있어요.

출처: 문서

본문

특정 접두어로 시작하는 용어를 검색하려면 prefix 쿼리를 사용해요. 예를 들어 다음 쿼리는 speaker 필드에 KING H로 시작하는 용어가 포함된 문서를 검색해요:

GET shakespeare/_search
{
  "query": {
    "prefix": {
      "speaker": "KING H"
    }
  }
}

파라미터를 제공하려면 앞선 쿼리와 동등한 다음 확장 문법을 사용할 수 있어요:

GET shakespeare/_search
{
  "query": {
    "prefix": {
      "speaker": {
        "value": "KING H"
      }
    }
  }
}

파라미터 (Parameters)

쿼리는 필드 이름()을 최상위 파라미터로 받아요:

GET _search
{
  "query": {
    "prefix": {
      "": {
        "value": "sample",
        ...
      }
    }
  }
}

는 다음 파라미터를 받아요. value를 제외한 모든 파라미터는 선택이에요. Parameter Data type Description value | 문자열(String) | 에 지정된 필드에서 검색할 용어예요. boost | 부동 소수점(Floating-point) | 이 필드가 관련성 점수에 기여하는 가중치를 지정하는 부동 소수점 값이에요. 1.0보다 큰 값은 필드의 관련성을 높이고, 0.0과 1.0 사이의 값은 관련성을 낮춰요. 기본값은 1.0이에요. case_insensitive | 불리언(Boolean) | true이면 value가 인덱싱된 필드 값과 대소문자를 구분하지 않고 일치하도록 허용해요. 기본값은 false예요(대소문자 구분은 필드의 매핑에 따라 결정돼요). rewrite | 문자열(String) | OpenSearch가 다중 용어 쿼리를 어떻게 다시 작성하고 점수를 매기는지 결정해요. 유효한 값은 constant_score, scoring_boolean, constant_score_boolean, top_terms_N, top_terms_boost_N, top_terms_blended_freqs_N이에요. 기본값은 constant_score예요.

search.allow_expensive_queries가 false로 설정되어 있으면 prefix 쿼리는 실행되지 않아요. index_prefixes가 활성화되어 있으면 search.allow_expensive_queries 설정은 무시되고 최적화된 쿼리가 구성되어 실행돼요.

더 알아보기 (Learn more)