Searchkick:我希望结果首先显示完全匹配,然后再按排序列出其他结果?

时间:2019-01-13 07:05:12

标签: elasticsearch searchkick

我希望结果在列出其他结果之前先显示完全匹配,并且数据应该按a-z或z-a(asc / desc)排序?

1. Maxwell B
2. Maxwell A
3. D Maxwell
4. C Maxwell

搜索文字:麦克斯韦 如果我搜索文本并按asc应用顺序,则结果为: C Maxwell D Maxwell Maxwell A Maxwell B

但是我搜索了Maxwell,因此首先应显示Maxwell(匹配结果),然后列出其他列表, 我想要的是: Maxwell A Maxwell B C Maxwell D Maxwell

1 个答案:

答案 0 :(得分:0)

在您给出的示例中,在搜索“ Maxwell”时,“ C Maxwell”和“ Maxwell A”具有相同的相似性-它们都不是完全精确匹配的,但是两者都完全包含搜索的标记(Maxwell)。

我也不认为排序是有帮助的,因为排序是在文本上完成的,但是仍然没有一个优先选择另一个,因为它们都包含“ Maxwell”和其他文本部分。

您正在运行什么查询? 更改结果顺序的一种方法是修改结果的分数。您可以在https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-function-score-query.html中查找一个示例,在其中可以指定一个与“ Maxwell”匹配的function_score,这可能会有所帮助。