我希望结果在列出其他结果之前先显示完全匹配,并且数据应该按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
答案 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,这可能会有所帮助。