Сортировка Elasticsearch Aggregation не работает на условиях субагрегации - PullRequest
0 голосов
/ 04 июня 2018

У меня есть требование отсортировать агрегацию первого уровня на основе агрегации второго уровня.

Вышеприведенный сценарий прекрасно работает, когда агрегация второго уровня либо кардинальна / сумма / макс и т. Д..., который связан с числом, но когда я добавляю термины при агрегации второго уровня, появляется исключение:

МОЙ ЗАПРОС:

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

Исключение из ES:

Недопустимый путь порядка агрегирования терминов [сортировка].Сегменты терминов могут быть отсортированы только по пути субагрегатора, который построен из нуля или более агрегаций с одним сегментом в пределах пути и конечного агрегации с одним сегментом или метрики в конце пути.

Глядя на вышеприведенное сообщение, я понимаю, что сортировка не работает с терминами, но есть ли способ сортировки агрегации первого уровня на основе второго поля типа text или ключевого слова ??

...