小编典典

映射时在ElasticSearch中优先于ngram匹配进行完全匹配

elasticsearch

我对使用ngram的单词有部分匹配。如何修改映射以始终偏爱精确匹配而不是ngram令牌?我不想修改查询。一个搜索框将搜索多种类型,每种类型都有各自的字段。

例如,假设我正在搜索职位,一个人的标题为“现场工程师”,另一个人的标题为“引擎技术员”。如果用户搜索“引擎”,我希望ES将后者返回为更相关。

我几乎逐字使用此映射:例外:我使用的ngram的最小值为3,最大值为11,而不是边缘ngram

是否可以对分析仪应用提升/功能评分?如果是这样,我也将“ full_name”和“ partial_name”分析器都应用于我的索引,并提升第一个。

编辑:我正在使用ElasticSearch 1.1.1和Nest 1.0.0 beta


阅读 519

收藏
2020-06-22

共1个答案

小编典典

我不相信您会建议对分析仪进行增强。

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

使用此映射,您可以对两个字段进行不同的查询,但可以进行组合(可能是布尔查询),并且可以对所full_name分析的字段进行查询。

2020-06-22