У меня есть требование отсортировать агрегацию первого уровня на основе агрегации второго уровня.
Вышеприведенный сценарий прекрасно работает, когда агрегация второго уровня либо кардинальна / сумма / макс и т. Д..., который связан с числом, но когда я добавляю термины при агрегации второго уровня, появляется исключение:
МОЙ ЗАПРОС:
> {
> "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 или ключевого слова ??