Как получить получить ранжирование значениея поля по уникальным записям

Если выбирать так

      'aggregations' => [
            'distance_range' => [
              'terms' => [
                'field' => 'doc.user_id',

              ],
              'aggregations' => [
                'max_distance' => [
                  'max' => [
                    'field' => 'doc.distance'
                  ]
                ]
              ]
            ]
          ]

то не хватает Pipeline агрегатора по range, я правильно понимаю?

Что мне не нравится в создании отдельного индекса, то что его надо поддерживать в актуальном состоянии, например периодически пересчитывать .

Есть ли варианты со скриптами или плагинами?