我正在嵌套聚合中执行热门聚合。我希望通过根文档中的时间戳字段来排序最高命中,以便获得嵌套文档的最新版本(可能被索引到多个根文档中)。虽然语法似乎让我这样做,但提取的排序键似乎是“垃圾”;每个文档的数量都相同。(以下只是一个更复杂的聚合的片段——否则,该方法可能没有意义——但它具有我的问题的本质。)
{
"size": 0,
"aggs": {
"nested_doc": {
"nested": {
"path": "nested_doc"
},
"aggs": {
"most_recent": {
"top_hits": {
"sort": "_index_time"
}
}
}
}
}
}
在我的结果中,排序键与任何这样的“_index_time”都不匹配,并且更改排序顺序没有效果。“_index_time”在根文档中被声明为整数。如果我将查询中的“_index_time”更改为一些无意义的字符串,查询会出错,所以我知道我的要求是有意义的,但它没有执行排序——或者,至少,它没有正确要排序的数据。
如何正确排序根属性上的嵌套聚合?
或者,我尝试将 copy_to: 'nested_doc._index_time' 添加到 '_index_time' 声明中,虽然这让我将 'nested_doc._index_time' 指定为排序键,但它仍然导致无意义的排序键。该字段是否未正确定义?
_index_time: { type: 'integer'},