структура индекса была переделана, и родителем стал Person, а ребенком Group. сортировка по полям ребека сделана с помощью ScriptScore , группы были аггрегмрованны с побощью TermAggregation и отсортированы с помощью субаггрешации по макстмальному score в аггрегированных документах.
для количества уникальных групп испольщовалась Cardinality aggregation (для общего количества фильтрованных записей и для вообше общего количества). Так же был добавлен фильтр на выбор только тех групп, у которых есть родитель.