Как получить тренды в конкретном заданном диапазоне, используя скрипты в упругом поиске? - PullRequest
0 голосов
/ 07 марта 2019

Я пытался использовать запрос сценария, но охват дат был трудным, может кто-нибудь помочь, как получить данные по дням, часам или месяцам, которые предоставляют данные, похожие на рисунок ниже.Спасибо (https://i.stack.imgur.com/4YoOQ.png)

1 Ответ

0 голосов
/ 07 марта 2019

Вы можете использовать функцию «формат», чтобы получить поля даты по вашему выбору.

Я взял пример из https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-datehistogram-aggregation.html#_keys_2

{
    "aggs" : {
        "sales_over_time" : {
            "date_histogram" : {
                "field" : "date",
                "interval" : "1M",
                "format" : "yyyy-MM-dd" 
            }
        }
    }
}

Вы можете дополнительно смешивать и сопоставлять шаблон формата, указанный в этой ссылке, для вашего конкретного случая использования https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-daterange-aggregation.html#date-format-pattern

Для вашего случая использования поле «format» будет «d MMM».
Ваш запрос будет выглядеть примерно так:

{
    "aggs" : {
        "sales_over_time" : {
            "date_histogram" : {
                "field" : "date",
                "interval" : "1M",
                "format" : "d MMM" 
            }
        }
    }
}
...