Получить новейшую запись для каждого ключевого слова в Elasticsearch - PullRequest
0 голосов
/ 12 февраля 2020

Мы индексируем статьи в ElasticSearch 6.8. Некоторые статьи относятся к досье, с которым они связаны полем ключевого слова, содержащим фрагмент досье. Проблема: нам нужно отсортировать досье по новейшей статье, информация, которая доступна только через Elasticsearch.

Мы попробовали это с помощью следующего запроса

{
"query": {
    "bool" : {
        "must": {
        "exists": {
          "field": "dossiers.keyword"
        }
      } 
    }
  },
  "sort": [{"change_date": "desc"}],
  "collapse": {
    "field": "dossiers.keyword",
    "inner_hits": {
      "name": "most_recent",
      "size": 1,
      "sort": [{"change_date": "desc"}]
    }
  }
}

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

Есть ли способ заставить свертку работать, если в поле досье есть несколько записей, или лучше запросить поставленная задача?

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