Объединение ElasticSearch в массив - PullRequest
0 голосов
/ 04 октября 2018

У меня есть несколько документов, которые выглядят следующим образом:

{"_id": 1, "session_id": "foo", "reply": "yes"}
{"_id": 2, "session_id": "foo", "reply": "no"}
{"_id": 3, "session_id": "foo", "reply": "maybe"} 

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

{"session_id": "foo", replies: ["yes","no","maybe"] }

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

Я придумал что-то вроде этого:

{
    "size": 0,
    "aggs" : {
        "my_buckets": {
            "composite" : {
                "sources" : [
                    { "session_id": { "terms" :       { "field": "sessionId.keyword" } } },
                     { "replies": { "terms": { "field": "reply.keyword" } } }
                ]
            }
        }
     }
}

Но не совсем дает вывод, который я ищу.Я использую ES 6.4

Спасибо

...