Как получить все уникальные значения поля в одной совокупности упругого поиска? - PullRequest
0 голосов
/ 06 февраля 2019

У меня огромное количество документов по упругому поиску, в которых много полей состояния из разных систем.Я хочу применить фильтрацию к индексу es, чтобы сначала получить идентификаторы записей, а затем загрузить их из mysql.

, т. Е. Я хочу получить все значения поля, скажем, cid, в виде массива в es.ответ.

Если я просто запрашиваю _source ["cid"], он по-прежнему выдаёт отдельные документы и слишком медленный (я хочу получить ~ 1M записей).Другой вариант - использовать агрегирование терминов, которое быстрее, но все же дает отдельные сегменты для каждого идентификатора.

Есть ли обходной путь, когда я могу получить эти многочисленные идентификаторы документов (используя агрегацию / скрипт / запрос)?

В настоящее время я занимаюсь:

{
 "size": 0, 
 "query":{
   "bool": {
     "filter": {
       "term": {
         "source": "web"
       }
     }
   }
 },
 "aggs": {
   "ids": {
     "terms": {
       "field": "cid",
       "size": 10000
     }
   }
 }
}

Любое решение или совет будет полезен.

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