【发布时间】:2014-03-11 19:32:56
【问题描述】:
鉴于以下查询,我如何将每个 should 子句的排名高于另一个。
我正在尝试按照它们列出的顺序来提升它们。
{ “大小”:20, “询问”: { “布尔”:{ “应该”: [ { “匹配短语”:{ “全名”:“迈克尔·道格拉斯” } }, { “match_phrase_prefix”:{ “全名”:“迈克尔·道格拉斯” } }, { “匹配”: { “姓氏”:“迈克尔·道格拉斯” } }, { “匹配”: { “名字”:“迈克尔·道格拉斯” } }, { “fuzzy_like_this”:{ “like_text”:“迈克尔·道格拉斯” } } ] } } }如何提升 should 数组中的每个子句?这是我无法解决的问题。
【问题讨论】:
-
我对查询进行了编辑,并在最后将问题改写为更直接。我试图获取样本数据,但编辑所有个人信息阻碍了返回的样本模糊结果的有用性。示例:我只是想让第二个应该,即 fullName 上的完全匹配,排名高于 fullName 短语前缀。如果我能做到这一点,我应该能够完成剩下的。
-
为什么需要?如果您只是使用“Michael Douglas”进行常规查询字符串查询,Elasticsearch 默认会将精确短语匹配的排名高于单个字段匹配,并且高于模糊匹配。
-
一个例子是每次都将 LastName 结果放在首位。
-
Kielni 我在stackoverflow.com/questions/24528933/… 有一个问题,默认情况下,在使用模糊匹配时,完全匹配不会排在首位。
标签: c# elasticsearch nest