ElasticSearch агрегирует запрос фильтра bool - PullRequest
0 голосов
/ 08 января 2020

Когда я запускаю:

query: {
    bool: {
        filter: [
            { term: { "data.ID": "12345" } },
            { range: { "@timestamp": {"gte": "now-3M"} } },
        ],
    },
}

Я получаю такой результат (для простоты я удалил дополнительные данные):

[
    {
        Data: {
            ID: "12345",
            type: "invoice"
        },
        Meta: {
            DateTime: "2020-01-07T21:00:24.738"
        }
    },
    {
        Data: {
            ID: "12345",
            type: "invoice"
        },
        Meta: {
            DateTime: "2020-01-07T21:00:25.245"
        }
    },
    {
        Data: {
            ID: "12345",
            type: "self"
        },
        Meta: {
            DateTime: "2020-01-07T21:00:25.245"
        }
    }
]

Я хочу иметь возможность агрегировать результаты счета если они находятся в пределах 3 секунд друг от друга.

Моя попытка выглядит следующим образом:

query: {
    bool: {
        filter: [
            { term: { "data.ID": "12345" } },
            { range: { "@timestamp": {"gte": "now-3M"} } },
            aggs: {
                my_agg: {
                    "date_histogram": { 
                        "field": "@timestamp",
                        "interval": "3s"
                    },
                    { term: { "data.type": "invoice" } }
                }
            },
        ],
    },
}

Я ожидаю, что он вернет что-то вроде этого:

[
    [
        {
            Data: {
                ID: "12345",
                type: "invoice"
            },
            Meta: {
                DateTime: "2020-01-07T21:00:24.738"
            }
        },
        {
            Data: {
                ID: "12345",
                type: "invoice"
            },
            Meta: {
                DateTime: "2020-01-07T21:00:25.245"
            }
        }
    ],
    {
        Data: {
            ID: "12345",
            type: "self"
        },
        Meta: {
            DateTime: "2020-01-07T21:00:25.245"
        }
    }
]

Но это возвращает [parsing_exception] [bool] query does not support [aggs]

Я пробовал много разных запросов, и до сих пор застрял, получая разные ошибки. Кто-нибудь знает как это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...