Выполнять скрипты в агрегировании Elasti c - PullRequest
0 голосов
/ 04 марта 2020

Я запросил агрегацию использования эластичного поиска. Мой ответ

 "aggregations" : {
    "time" : {
      "buckets" : [
        {
          "key_as_string" : "2019-01-01",
          "key" : 1546300800000,
          "doc_count" : 12,
          "look_up" : {
            "doc_count" : 5,
            "unlock_not_suggested" : {
              "doc_count" : 2
            }
          }
        },

. Теперь я хочу использовать скрипт для преобразования данных, таких как

['lookup': 5, 'unlock_not_suggested': 2 ]

Я нахожу и вижу скрипт использования рекомендаций, подобный этому, но я не знаю, как добавить это в свой запрос:

aggs.stream().flatMap(a -> a.stream().flatMap( b->b.stream().map( c-> -> ['A': a.key, 'B': b.key, 'C': c.key ] ) ) ).collect(Collectors.toList())

Мой запрос

POST test.userstats/_search
{
    "size": 0,
    "aggs": {
        "time": {
            "date_histogram": {
                "field": "event_stats.watch_10_percent_video.first_time",
                "format": "yyyy-MM-dd",
                "interval": "year",
                "min_doc_count": 0
            },
                    "aggs": {
                        "look_up": {
                            "filter": {
                                "exists": {
                                    "field": "event_stats.look_up"
                                }
                            },
                            "aggs": {
                                "unlock_not_suggested": {
                                    "filter": {
                                        "exists": {
                                            "field": "event_stats.unlock_not_suggested_video"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
...