Получить гистограмму встречаемости за день - PullRequest
0 голосов
/ 28 августа 2018

Скажите, у меня есть следующий набор данных:

{
    "date": "2018-08-28T13:56:29",
    "id": "2db53c87bc701085b7c4eae7efabc247"
},

{
    "date": "2018-08-28T13:57:13",
    "id": "c2c74867e70226096c2a279e89df655d"
},

{
    "date": "2018-08-28T13:58:09",
    "id": "2db53c87bc701085b7c4eae7efabc247"
}

Я пытаюсь получить количество событий в день для данного идентификатора за последний месяц. Например, для идентификатора 2db53c87bc701085b7c4eae7efabc247 я должен получить 2.

Я попробовал следующее:

{
    sort: {
        date: "desc"
    },
    query: {
        bool: {
            must: {
                term: {
                    "id": "2db53c87bc701085b7c4eae7efabc247"
                }
            },
            filter: {
                range: {
                    date: {
                        gte: "now-1m",
                        lte: "now"
                    }
                }
            }
        }
    },
    aggs: {
        daily: {
            date_histogram: {
                field: "date",
                interval: "day"
            }
        }
    }
}

Elasticsearch дает мне следующий вывод:

hits: { total: 0, max_score: null, hits: [] },
aggregations: { daily: { buckets: [] } } }

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 28 августа 2018

В настоящее время вы фильтруете документы, сохраненные в последнюю минуту. Вам нужно изменить фильтр даты, например, «сейчас-1M»

{
    size:0,
    sort: {
        date: "desc"
    },
    query: {
        bool: {
            must: {
                term: {
                    "id": "2db53c87bc701085b7c4eae7efabc247"
                }
            },
            filter: {
                range: {
                    date: {
                        gte: "now-1M",
                        lte: "now"
                    }
                }
            }
        }
    },
    aggs: {
        daily: {
            date_histogram: {
                field: "date",
                interval: "day"
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...