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

在您给出的示例中,在搜索"麦克斯韦"时,"C 麦克斯韦"和"麦克斯韦 A"具有相同的相似性 - 它们都不是完全完全匹配的,但都完全包含搜索的令牌(麦克斯韦)。

我也不认为排序会有所帮助,因为排序是在文本上完成的,并且仍然没有对其中任何一个的偏好超过另一个,因为两者都包含"Maxwell"和其他文本部分。

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

最新更新