【发布时间】:2020-10-14 22:37:58
【问题描述】:
当搜索关键字超过一个时,以下搜索查询结果按顺序提供数据。
{
"query": {
"query_string" : {
"query" : "(Sony Music) OR (Sony Music*) OR (*Sony Music) OR (*Sony Music*)",
"fields" : ["MDMGlobalData.Name1"]
}
}
}
- 精确匹配优先。
- 然后,显示以搜索词开头的那些。
- 然后,显示以搜索词结尾的内容。
- 然后,显示剩余部分。
但如果只是一个词,请在查询数据中说sony。顺序乱了。
有人请告诉我为什么会这样?以及使用query-string 搜索获得上述排序结果的最佳方法是什么。
【问题讨论】:
-
提到的字段的映射是什么,并添加一些示例值
-
@Iniamudhan 已经很久了。您有机会阅读我的回答吗,期待您的反馈,如果有帮助,请不要忘记投票并接受 :)
-
@BhavyaGupta 对于大量数据,您的答案没有按预期工作。所以我们使用自定义函数分数来说明我们的逻辑
-
哦好的@Iniamudhan,谢谢你的回复:)
标签: elasticsearch