Search analyzer(搜索分析器)
search_analyzer 映射参数指定在搜索时用于text字段的分析器。这使得用于索引的分析器可以与用于搜索的分析器不同,从而提供对搜索词如何解释和匹配的更大控制权。
默认情况下,索引和搜索使用相同的分析器。然而,当您希望在搜索期间应用更宽松或更严格的匹配规则时(例如,仅在搜索时使用词干提取或移除停用词),使用自定义的 search_analyzer 会很有帮助。
示例
以下示例创建一个字段,该字段在索引时使用配置了edge_ngram_tokenizer的 edge_ngram_analyzer,而在搜索时使用standard 分析器
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"
}
}
}
}