search_analyzer 매핑 파라미터

search_analyzer 매핑 파라미터

search_analyzer 매핑 파라미터는 text 필드에 대해 검색 시점에 사용할 analyzer를 지정해요. 이를 통해 인덱싱에 사용하는 analyzer와 검색에 사용하는 analyzer를 다르게 설정할 수 있어서, 검색 용어가 어떻게 해석되고 매칭되는지 더 세밀하게 제어할 수 있어요.

기본적으로 인덱싱과 검색 모두 같은 analyzer가 사용돼요. 하지만 검색 시점에만 stemming을 적용하거나 stopwords를 제거하는 등, 검색 중에 더 느슨하거나 더 엄격한 매칭 규칙을 적용하고 싶을 때 커스텀 search_analyzer를 사용하면 유용해요. 자세한 내용과 사용 사례는 Search analyzers를 참고하세요.

출처: 문서

본문

예제

다음 예제는 인덱싱에는 edge_ngram_tokenizer로 구성된 edge_ngram_analyzer를 사용하고, 검색에는 standard analyzer를 사용하는 필드를 만들어요:

PUT /articles
{
  "settings": {
    "analysis": {
      "analyzer": {
        "edge_ngram_analyzer": {
          "tokenizer": "edge_ngram_tokenizer",
          "filter": ["lowercase"]
        }
      },
      "tokenizer": {
        "edge_ngram_tokenizer": {
          "type": "edge_ngram",
          "min_gram": 2,
          "max_gram": 10,
          "token_chars": ["letter", "digit"]
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "title": {
        "type": "text",
        "analyzer": "edge_ngram_analyzer",
        "search_analyzer": "standard"
      }
    }
  }
}

search analyzer가 어떻게 동작하는지에 대한 전체 설명과 더 많은 예제는 Search analyzers를 참고하세요.

더 알아보기 (Learn more)