考虑下面是聚合后得到的2个文档,现在我需要对文档进行排序。
文件1:
{
'startDate' :'2023-02-01',
'endDate' : '2022-02-01'
}
文档 2 :
{
'endDate' : '2024-02-01'
}
现在我应该收到第二份文档作为排序后的结果。
下面是我正在使用的查询
{
"groupBy-top-hits": {
"top_hits": {
"sort": [
{
"startDate": {
"order": "desc"
}
},
{
"endDate": {
"order": "desc"
}
}
],
"size": 1
}
}
}
但它返回第一个文档。查询应该是如果存在任何一个键,则使用该键进行排序,但它不是这样工作的。如果有任何查询需要更改,请提出建议。
当排序表达式包含多个字段时,主要按照第一个字段进行排序。仅当第一个字段中存在相同的值(在您的情况下,
startDate
)时才会考虑第二个字段。默认情况下,缺失值排在最后。因此,由于第一个文档的 startDate
高于第二个文档的 startDate
(第二个文档不存在,因此排在最后),因此第一个文档出现在结果中。