У меня есть список документов, как показано ниже.Мне нужны агрегаты для имен полей (например, цвета, размера и т. Д.), Которые я не знаю во время запроса, потому что имена полей очень разнообразны.Как я могу получить агрегаты для этих полей?
[
{
"name": "Test product 1",
"features": [
{
"name": "color",
"value": "Blue"
},
{
"name": "size",
"value": "M"
},
{
"name": "height",
"value": 124,
}
]
},
{
"name": "Test product 1",
"features": [
{
"name": "color",
"value": "Red"
},
{
"name": "wifi",
"value": "ac/g/n"
}
]
}
]
Я ищу что-то, как показано ниже.Обратите внимание, что "features.name => value"
не является действительной / действительной нотацией в ES.
GET /_search
{
"aggs" : {
"features" : {
"terms" : { "field" : "features.name => value" }
}
}
}
и ответом, подобным этому
{
...
"aggregations" : {
"genres" : {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets" : {"color": [
{
"key" : "red",
"doc_count" : 6
},
{
"key" : "blue",
"doc_count" : 3
},
],
{"size": [
{
"key" : "M",
"doc_count" : 6
},
],
{"wifi": [
{
"key" : "ac/g/n",
"doc_count" : 1
},
]
}
}
}