Elasticsearch聚合排序对术语子聚合不起作用

eh57zj3b  于 2022-11-22  发布在  ElasticSearch
关注(0)|答案(1)|浏览(176)

我需要根据第二层汇总排序第一层汇总。

当第二级聚合是基数/和/最大值等时,上面的场景工作得很好,这与一个数字有关,但是当我在第二级聚合下添加项时,会抛出一个异常:

我的问题:

> {   
>     "size": 0,
>     "aggs": {
>     "id": {
>       "terms": {
>         "field": "column_id.keyword",
>         "size": 10,
>         "order": {
>           "sort": "asc"
>         }
>       },
>       "aggs": {
>         "sort": {
>           "terms": {
>             "field": "table_name.keyword",
>             "size": 10
>           }
>         }
>       }
>     } 
>   }
> }

来自ES的例外:

字词聚合顺序路径[sort]无效。字词存储桶只能在子聚合器路径上进行排序,该子聚合器路径由路径中的零个或多个单存储桶聚合以及路径末端的最终单存储桶或度量聚合组成。

通过查看上述消息,我了解到排序不适用于术语,但是否有任何方法可以根据文本或关键字类型的第二个字段对第一级聚合进行排序??

hyrbngr7

hyrbngr71#

将排序变更为索引键(_K)

>     {   
    >     "size": 0,
    >     "aggs": {
    >     "id": {
    >       "terms": {
    >         "field": "column_id.keyword",
    >         "size": 10,
    >         "order": {
    >           "_key": "asc"
    >         }
    >       },
    >       "aggs": {
    >         "sort": {
    >           "terms": {
    >             "field": "table_name.keyword",
    >             "size": 10
    >           }
    >         }
    >       }
    >     } 
    >      }
    >      }

相关问题