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를 참고하세요.