Распределить пропущенные по нескольким значениям - PullRequest
0 голосов
/ 12 ноября 2018

Elasticsearch имеет это свойство missing, которое присваивает сегментам с отсутствующим значением какое-то другое значение.

Мне просто интересно, есть ли способ распределить группы по множеству групп или даже просто распределить их по уже существующим группам.

Вариант использования:

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

{
  ...
  "locations": [{
      "city" : "LA",
      "suburb": "Beverly Hills"
  },
  {
      "city" : "LA",
      "suburb": "Hollywood"
  }]
}

Некоторые документы должны индексироваться в одном пригороде и могут доходить до уровня пригорода, в то время как другие охватывают несколько пригородов. Вместо того, чтобы индексировать документы для всех пригородов, просто индексируйте документ до уровня города, и все отсутствующие пригороды пригорода охватывают весь город (то есть все пригороды в городе)

{
  ...
  "locations": [{
      "city" : "LA"
  }]
}

Включение документа в результаты поиска не является большой проблемой, теперь проблема заключается в подсчете этих документов для всех пригородов. Таким образом, в сущности, если в Лос-Анджелесе есть 2 предместья, а вышеприведенный документ является нашим единственным документом, мы получаем следующие сегменты для агрегации пригородов.

"buckets" : [ 
 {
   "key" : "Beverly Hills",
   "doc_count" : 1
 },
 {
   "key" : "Hollywood",
   "doc_count" : 1
 }]
...