Вложенный фильтр агрегации - PullRequest
       4

Вложенный фильтр агрегации

0 голосов
/ 20 сентября 2018

У меня есть индекс, содержащий клиентов.Нравится / клиенты.Существует вложенное сопоставление свойств с указанием даты и общей суммы.

Например:

"properties": [
     "invoices": [
         "type": "nested",
         "properties": [
             "from_date": [
                    type: "date",
                    "format": "dd.MM.yyyy HH:mm"
             ],
             "revenue": [
                    type: "double"
             ],
         ]
     ],
]

Я бы хотел выбрать клиентов, упорядоченных по выручке, за определенный промежуток времени.Поэтому подсписок вложенного свойства должен быть суммирован.Это должно быть что-то вроде вложенного фильтра агрегации.Однако я борюсь с сочетанием фильтра и агрегации.Либо я получаю общую сумму за год (чтобы она не группировалась по клиентам), либо она возвращает общий доход (не отфильтрованный за период времени).

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

[
    "aggs: [
        "revenueForTime": [
            "nested": [
                "path": "invoices.revenue"
                "score_mode": "sum",
            ]
            "aggs": [
                "filtered": [
                    "filter": [
                        "range": [
                            "invoices.from_date":  [
                                "gt": it.value["from"].format("dd.MM.yyyy HH:mm")    
                            ]
                        ]
                    ],
                ],
                "aggs": [
                     "sum_revenue": [
                          "reverse_nested": [:],
                     ]
                ]
            ]
        ]
    ]
]

В настоящее время это дает мне синтаксические ошибки.Где можно разместить все условия запроса для агрегации по каждому документу?Я не нашел полезных статей или вопроса StackOverflow по этому основному вопросу.

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