Сортировка terms по результатам поиска

Для моего запроса поиска выдаёт вот такие результаты.

В этом же запросе если я получаю terms по полю pr_article_search то вот такой порядок сортировки.

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

Условно говоря. Я делаю поиск по каком-либо слову/предложению. Получаю результаты поиска. И для каждого результата мне нужно получить сколько у меня ещё встречается записей у которых одинаковое pr_article_search. Но при этом что бы больше не повторялись результаты.

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

{"name": "John", "pr_article_search": 1},
{"name": "Mary", "pr_article_search": 2},
{"name": "Nick", "pr_article_search": 1},
{"name": "Bob", "pr_article_search": 3},
{"name": "Kenny", "pr_article_search": 1}

Результат поиска по фразе вернёт их вот в таком порядке

{"name": "Bob", "pr_article_search": 3},
{"name": "John", "pr_article_search": 1},
{"name": "Mary", "pr_article_search": 2},
{"name": "Kenny", "pr_article_search": 1}

И на выходе я хочу получить, что

 [0] => Array
                      (
                        [key] => 3
                        [name]=>Bob
                        [doc_count] => 1
                      )
[1] => Array
                       (
                        [key] => 1
                        [name]=>John
                        [doc_count] => 2
                        )

[2] => Array
                       (
                        [key] => 2
                        [name]=>Mary
                        [doc_count] => 1
                       )