Atlas Search 自动补全(Autocomplete)的自定义分词与模糊匹配
讲解如何利用 Lucene 分词器定制 Atlas Search 自动补全行为,支持中文、拼音和纠错。 · 难度:入门 · +10XP
Atlas Search 自动补全(Autocomplete)的自定义分词与模糊匹配
MongoDB Atlas Search 内置了强大的自动补全功能,但默认的 standard 分词器对中文和拼音不友好。本教程将深入 Lucene 的词元分析器配置,展示如何创建自定义分析器(如 icu_analyzer 或 pattern_replace)以支持中文按字补全、拼音前缀匹配,以及通过 fuzzy 参数实现输入纠错。还会讲解如何利用 index 中的 'autocomplete' 类型与 'edgeGram' 或 'ngram' 令牌过滤器,控制补全的敏感度和性能。最后通过一个电商商品搜索的完整示例展示前后端交互。
// 创建索引定义时指定自定义分析器
{
"mappings": {
"dynamic": false,
"fields": {
"productName": [
{
"type": "autocomplete",
"analyzer": "lucene.standard",
"tokenization": "edgeGram",
"minGrams": 2,
"maxGrams": 10
}
]
}
}
}
// 查询时使用 autocomplete 操作符并启用 fuzzy