Точное совпадение гистограммы даты

#elasticsearch

#elasticsearch

Вопрос:

Агрегирование гистограммы округляет каждый результат до ближайшего сегмента в пределах интервала:

Если в документах есть поле, содержащее цену (числовую), мы можем настроить эту агрегацию для динамического построения сегментов с интервалом 5 (в случае цены это может представлять 5 долларов).). Когда выполняется агрегирование, поле цены каждого документа будет оценено и будет округлено в меньшую сторону до ближайшей корзины — например, если цена равна 32, а размер корзины равен 5, то округление даст 30, и, таким образом, документ «попадет» в корзину, связанную сключ 30

Мне нужно объединить документы, используя гистограмму даты, без этого округления, поэтому в корзину попадут только документы, у которых дата строго равна ключу корзины.

Например:

 {"date": "2016-01-10"}
{"date": "2016-01-11"}
{"date": "2016-01-13"}
{"date": "2016-01-14"}

{
"aggs" : {
    "strict" : {
        "date_histogram" : {
            "field" : "date",
            "interval" : "2d"
        }
    }
}}
 

Ожидаемый результат:

 {
"aggregations": {
    "strict": {
        "buckets": [
            {
                "key_as_string": "2016-01-10",
                "key": ...,
                "doc_count": 1
            },
            {
                "key_as_string": "2016-01-12",
                "key": ...,
                "doc_count": 0
            },
            {
                "key_as_string": "2016-01-14",
                "key": ...,
                "doc_count": 1
            }
        ]
    }
}}
 

Комментарии:

1. Затем используйте day интервал. Если вы используете 2d , то очевидно, что нечетные дни будут попадать в группы четных дней. Если вам специально необходимо игнорировать нечетные дни, то вы можете применить фильтр для отклонения документов с нечетными датами.

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

3. Тогда я не думаю, что date_histogram он создан для этого.