Сортировать Elasti c Результаты поиска с лучшим _score в агрегации - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь выполнить агрегацию, а затем отсортировать лучший результат в топе. Несмотря на то, что агрегация прошла успешно, оценка не отсортирована. Как сделать это возможным?

   "aggs": {
            "group": {
                "terms": {
                    "field": "description.keyword",
                    "order": {
                        "description_score": "desc"
                    }
                },
                "aggs": {
                    "group_docs": {
                        "top_hits": {
                            "size": 1
                        }
                    }
                }
            },

        }

1 Ответ

0 голосов
/ 23 апреля 2020

Поскольку указанные показатели @Lupanoide не рассчитываются в агрегации, вы не можете отсортировать корзину по количеству документов. Вместо этого можно использовать сворачивание поля

Позволяет свернуть результаты поиска на основе значений поля. Свертывание выполняется путем выбора только самого отсортированного документа по ключу свертывания

{
  "query": {
    "match_all": {}
  },
  "collapse": { --> group by on given field
    "field": "sources.keyword"
  }
}

По умолчанию результаты поиска сортируются по «счету», поэтому вам не нужно добавлять «сортировку»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...