搜索分析器
The search_analyzer
映射参数指定在搜索时用于 text
字段的分析器。这允许用于索引的分析器与用于搜索的分析器不同,从而可以更好地控制如何解释和匹配搜索词。
默认情况下,索引和搜索都使用相同的分析器。但是,当您希望在搜索期间应用更宽松或更严格的匹配规则时,例如仅在搜索时使用词干提取
或删除停用词,使用自定义的 search_analyzer
可能会有所帮助。有关更多信息和用例,请参阅搜索分析器。
示例
以下示例创建一个字段,该字段使用配置了edge_ngram_tokenizer
的 edge_ngram_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"
}
}
}
}
有关搜索分析器如何工作的完整说明以及更多示例,请参阅搜索分析器。