我有部分匹配与ngrams一起使用的单词 . 如何修改映射以始终支持ngram标记的完全匹配?我不想修改查询 . 一个搜索框将搜索多个类型,每个类型都有自己的字段 .
例如,假设我正在搜索职称,一个人的头衔是“现场工程师”,另一个人是“发动机技师” . 如果用户搜索“引擎”,我希望ES将后者视为更相关 .
我几乎逐字地使用这个映射:https://stackoverflow.com/a/19874785/978622 -Exception:我使用的是一个最小值为3,最大值为11的ngram而不是edge ngram
是否可以将增强/功能评分应用于分析仪?如果是这样,我将同时将“full_name”和“partial_name”分析器应用于我的索引并提升第一个 .
编辑:我正在使用ElasticSearch 1.1.1和Nest 1.0.0 beta
1 回答
我不相信无论如何都要按照你的建议对分析仪进行增强 .
您可以尝试的一件事是在映射中使用multi field类型 . 然后,您可以将
partial_name
分析器应用于该字段的一个版本,将full_name
分析器应用于另一个版本 .使用此映射,您可以以不同方式查询这两个字段,但可以组合(可能在bool查询中),并对在
full_name
已分析字段上执行的查询应用提升 .