Elasticsearch php: агрегаты документов с интервалом дат

Я пытаюсь построить граненый поиск, используя Elasticsearch-php 6.0, но мне трудно понять, как использовать агрегацию диапазона дат. Вот что я пытаюсь сделать:

Образец картирования:

"mappings": {
"_doc": {
"properties": {
...
"timeframe": {
"properties": {
"gte": {
"type": "date",
"format": "yyyy"},
"lte": {
"type": "date",
"format": "yyyy"}
}
}
...

В моем документе у меня есть это свойство:

"timeframe":[{"gte":"1701","lte":"1800"}]

Я хочу иметь возможность отображать фасет с ползунком диапазона дат, где пользователь может ввести диапазон (минимальное значение — максимальное значение). В идеале, эти минимальные и максимальные значения должны возвращаться агрегацией Elasticsearch автоматически с учетом текущего запроса.

Вот агрегация, которую я пытаюсь написать в «псевдокоде», чтобы дать вам представление:

"aggs": {
"date_range": {
"field": "timeframe",
"format": "yyyy",
"ranges": [{
"from": min(timeframe.gte),
"to": max(timeframe.lte)
}]
}
}

Я думаю, что мне нужно использовать агрегирование диапазона дат, агрегацию мин / макс и конвейер агрегацию, но чем больше я о них читаю, тем больше я запутался. Я не могу найти, как склеить весь этот мир.

Имейте в виду, что я могу изменить отображение и / или структуру документа, если это не правильный способ достижения этого.

Спасибо !

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]