У меня есть документы ES, которые выглядят так:
{
"auctionOn": "2018-01-01",
"inspections: [
{
"startsOn": "2018-01-02 09:00",
"endsOn": "2018-01-02 10:00"
}
]
}
Мне нужны следующие ответы из поиска (или нескольких поисков)
- количество документов с
auctionOn
в будущем (например, сейчас)
- количество документов с
inspection.startsOn
в будущем (например, сейчас)
- гистограмма даты (с разбивкой по дням) следующих 7 дней, с количеством документов с
auctionOn
в этот день
- гистограмма даты (с разбивкой по дням) следующих 7 дней, с количеством документов с
inspection.startsOn
в этот день
Итак, я пытаюсь выяснить, как эффективно получить эти ответы. Я знаю, что могу / должен протестировать все разные подходы, но я относительно новичок в ES, так что легче сказать, чем сделать.
Может ли кто-нибудь дать мне совет (или, в идеале, запрос), как получить эти 4 значения?
Идеи, которые у меня были:
Запрос всех документов с инспекцией / аукционом в будущем. Создайте агрегаты гистограмм дат, отфильтрованные по следующим 7 дням для аукциона и проверок. Используйте диапазон агрегации, чтобы получить количество документов с аукциона / проверки> сегодня.
Плюсы: один поиск для всех ответов. Минусы: много документов для агрегирования?
Создание отдельных поисков (например, msearch) для:
- запросить все документы с проверкой в ближайшие 7 дней. агрегировать по дням.
- запросить все документы с аукциона в ближайшие 7 дней. агрегировать по дням.
- запросить все документы с проверкой в будущем. используйте хиты, чтобы получить всего
- запросить все документы с аукциона в будущем. использовать хиты, чтобы получить общее количество.
Плюсы: запросы проще .. больше попаданий в кеш? Минусы: 4 отдельных поиска.
Может кто-нибудь подсказать мне правильный путь и дать подсказки о том, как выполнить запрос / агрегирование?
Спасибо