我正在研究es的排序。
我有两列“得分”和“范围”。因此,我想像对记录进行排序一样,首先获得所有得分为0的记录,然后按范围进行排序。我在ES上找不到任何文档。
就像我有记录
A,得分为0,范围为7
B得分1和范围2
C,得分为0,范围为7
D得分2和范围1
所以我想要像A,C,D,B这样的结果
谢谢
最佳答案
我建议使用script-based sorting。脚本的想法是首先返回带有Score = 0
的文档,如果是Score > 0
,则脚本使用Range
值进行排序:
GET index/_search
{
"sort" : {
"_script" : {
"type" : "number",
"script" : {
"lang": "painless",
"source": "doc['Score'].value == 0 ? 0 : doc['Range'].value"
},
"order" : "asc"
}
}
}
关于node.js - Elasticsearch 中的条件排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62632611/