弹性搜索中的条件排序
Conditional sorting in Elastic search
我正在做es的排序。
我有两列“分数”和“范围”。所以我想对记录进行排序,首先我将获得得分为 0 的所有记录,然后按范围排序。我在 ES 上找不到它的任何文档。
好像我有记录
A 得分为 0,范围为 7
B,得分 1,范围 2
C,得分 0,范围 7
D,得分 2,范围 1
所以我想要像 A、C、D、B 这样的结果
谢谢
我建议使用 script-based sorting。该脚本的想法是首先使用 Score = 0
return 文档,如果 Score > 0
脚本使用 Range
值进行排序:
GET index/_search
{
"sort" : {
"_script" : {
"type" : "number",
"script" : {
"lang": "painless",
"source": "doc['Score'].value == 0 ? 0 : doc['Range'].value"
},
"order" : "asc"
}
}
}
我正在做es的排序。
我有两列“分数”和“范围”。所以我想对记录进行排序,首先我将获得得分为 0 的所有记录,然后按范围排序。我在 ES 上找不到它的任何文档。
好像我有记录
A 得分为 0,范围为 7
B,得分 1,范围 2
C,得分 0,范围 7
D,得分 2,范围 1
所以我想要像 A、C、D、B 这样的结果 谢谢
我建议使用 script-based sorting。该脚本的想法是首先使用 Score = 0
return 文档,如果 Score > 0
脚本使用 Range
值进行排序:
GET index/_search
{
"sort" : {
"_script" : {
"type" : "number",
"script" : {
"lang": "painless",
"source": "doc['Score'].value == 0 ? 0 : doc['Range'].value"
},
"order" : "asc"
}
}
}