我有两个领域的排名和出勤率。如果缺少排名字段,请先显示这些文档,如果缺少考勤,请在另一个之前显示。因此,顺序将是,第一个出勤率和排名都缺失。第二组,其中任何一个缺失。 我怎么能用脚本做到这一点?
答案 0 :(得分:0)
此查询应该这样做:
{
"query": {
"bool": {
"should": [
{
"filtered": {
"filter": {"missing": {
"field": "rank"
}}
}
},
{
"filtered": {
"filter": {"missing": {
"field": "attendance"
}}
}
},
{
"match_all": {}
}
]
}
}
}
基本思想是布尔查询的should
条件将每个都添加到文档的分数。如果缺少一个字段,则会添加一个额外的分数,如果缺少另一个字段,则分数会增加。如果它们都不匹配,那么只考虑match_all
查询进行评分。
订单是默认订单:得分后,升序。错过的字段越多,得分越高。