У меня огромное количество документов по упругому поиску, в которых много полей состояния из разных систем.Я хочу применить фильтрацию к индексу es, чтобы сначала получить идентификаторы записей, а затем загрузить их из mysql.
, т. Е. Я хочу получить все значения поля, скажем, cid, в виде массива в es.ответ.
Если я просто запрашиваю _source ["cid"], он по-прежнему выдаёт отдельные документы и слишком медленный (я хочу получить ~ 1M записей).Другой вариант - использовать агрегирование терминов, которое быстрее, но все же дает отдельные сегменты для каждого идентификатора.
Есть ли обходной путь, когда я могу получить эти многочисленные идентификаторы документов (используя агрегацию / скрипт / запрос)?
В настоящее время я занимаюсь:
{
"size": 0,
"query":{
"bool": {
"filter": {
"term": {
"source": "web"
}
}
}
},
"aggs": {
"ids": {
"terms": {
"field": "cid",
"size": 10000
}
}
}
}
Любое решение или совет будет полезен.