Я выполняю агрегацию подсчета значений и кардинальную агрегацию в моем наборе данных и использую следующий запрос.
GET my_index/my_type/_search
{
"query": {
"filtered": {
"filter": {
"bool": {
"must": [{
"range": {
"time": {
"gt": "2015-03-04 00:00:00",
"lt": "2015-03-04 23:59:59"}
}
}
],
"should": [
{
"term": {
"andi.raw": "1d3d7bac8ce4c620"}
}
]
}
}
}
},
"aggs": {
"user_count": {
"cardinality": {
"field": "andi.raw"}
}
}
}
Я выполняю это в цикле для различных дат, и в то же время таймфрейм будет один день, а фильтр терминов будет иметь 50 терминов (50 значений andi.raw aganist). Одна такая итерация занимает около 2,5 секунд для загрузки, и у меня почти 50-80 итераций большую часть времени. Так что это занимает много времени. Есть ли способ оптимизировать это для увеличения производительности?
Ваши запросы выглядят довольно интенсивно для меня. У меня был похожий набор запросов, и многопользовательский API сэкономил мне несколько секунд.
Увидеть API мульти-поиска
Других решений пока нет …