Im используя elasticsearch aggregations
вернуть два различных агрегатных группы, один для текущей недели и один за предыдущую неделю, моя текущая неделя агрегат выглядит следующим образом:ElasticSearch extended_bounds мин макс
"aggregations": {
"current": {
"date_histogram": {
"field": "date",
"interval": "1d",
"min_doc_count": 0,
"extended_bounds": {
"min": new Date().setDate(new Date().getDate() - 7),
"max": new Date().getDate()
}
}
}
}
На данный момент все это штраф, im используя min_doc_count
в сочетании с extended_bounds
, чтобы заполнить пробелы для пустых ведер в случае их наличия.
В моем другом агрегате я повторяю этот процесс почти так же, но хочу, чтобы мои ведра были в предыдущий период!
Я знаю, что extended_bounds
не фильтровальные ведра поэтому я, хотя о добавлении фильтра поверх моей агрегации, как это:
"aggregations": {
filtered: {
"filter" : {
"bool": {
"must": [{
"range" : {
date: {
from: new Date().setDate(new Date().getDate() - 14),
to: new Date().setDate(new Date().getDate() - 7)
}
}
}]
}
},
},
"previous": {
"date_histogram": {
"field": "date",
"interval": "1d",
"min_doc_count": 0,
"extended_bounds": {
"min": new Date().setDate(new Date().getDate() - 14),
"max": new Date().setDate(new Date().getDate() - 7)
}
}
}
}
Второй агрегат должен вернуться назад во времени, ровно за 14 дней до до 7 дней назад. Я знаю, что min
работает, но max
нет, возвращенные ведра поднимаются до сегодняшнего дня, хотя Im использует фильтр для ограничения диапазона, Im, используя must
здесь, но ничего не делает. Im совершенно новый для ES, возможно, я пропустил что-то очевидное здесь, прошу прощения за недостаток знаний.
Спасибо, я определенно рассмотрю, как их вложить в фильтр, так как теперь я запускаю оба запроса, разделенные в нескольких запросах, возможно, не самый эффективный способ сделать это ... – bmaggi