映射时,在ElasticSearch中支持ngram匹配的完全匹配

Bra*_*don 9 elasticsearch nest

我有部分匹配与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

Gre*_*uka 7

我不相信无论如何都要按照你的建议对分析仪进行增强.

您可以尝试的一件事是在映射中使用多字段类型.然后,您可以将partial_name分析仪应用于该字段的一个版本,将full_name分析仪应用于另一个版本.

使用此映射,您可以以不同方式查询这两个字段,但可以组合(可能在bool查询中),并对正在full_name分析字段上执行的查询应用提升.

  • 链接已经死了.[试试这个](https://www.elastic.co/guide/en/elasticsearch/reference/1.7/_multi_fields.html#_multi_fields) (2认同)