Нумерация ведер elasti c по размеру, от и порядку по полю отметки времени - PullRequest
0 голосов
/ 04 февраля 2020

Я хочу разбить ведра на «size» и «from», упорядоченные по полю «Timestamp». Я пробовал bucket_sort, но он не сработал, так как он ожидает другую совокупность братьев и сестер и не может агрегировать в поле Timestamp здесь. Elasticserch 6.7.2

Мой пример данных:

[{
    "Name": "Event A",
    "Timestamp": "2020-02-02T09:45:20.954Z"
},
{
    "Name": "Event B",
    "Timestamp": "2020-02-04T09:45:20.954Z"
},
{
    "Name": "Event C",
    "Timestamp": "2020-02-03T09:45:20.954Z"
},
{
    "Name": "Event A",
    "Timestamp": "2020-02-01T09:45:20.954Z"
},
{
    "Name": "Event D",
    "Timestamp": "2020-01-15T09:45:20.954Z"
}]

, и текущий результат упорядочен по doc_count, но я хочу упорядочить по дате. Мой ожидаемый результат:

"buckets": [
        {
        "key": "Event B",
        "doc_count": 1
        }
        ,
        {
        "key": "Event C",
        "doc_count": 1
        }
        ,
        {
        "key": "Event A",
        "doc_count": 2
        }
        ,
        {
        "key": "Event D",
        "doc_count": 1
        }
  ]

Заранее спасибо.

Редактировать 1: Я пробовал запрос, чтобы получить упорядоченные сегменты без "from", и результат совпал с ожидаемым результатом,

{
    "size": 0,
    "aggs": {
        "eventNames": {
            "terms": {
                "field": "Name",
                "size": 5,
                "order": {
                    "firstOccurredAggs": "desc"
                }
            },
            "aggs": {
                "firstOccurredAggs": {
                    "min": {
                        "field": "Timestamp"
                    }
                }
            }
        }
    }
}

Но «от» здесь нельзя использовать с «терминами» и «мин».

...