У меня есть документы в elasticsearch (1.5), который выглядит как:elasticsearch термины и агрегация сумма
{
"gender": [
{
"name": "unknown",
"value": 12
},
{
"name": "male",
"value": 89
},
{
"name": "female",
"value": 84
}
]
}
- не все документы, содержит три варианта (мужчина/женщина/неизвестен)
Я хотел бы получить сумму всех значений для каждого имени пола. как то:
{
"buckets": [
{
"key": "unknown",
"doc_count": 112,
"gender_a": {
"value": 462
}
},
{
"key": "male",
"doc_count": 107,
"gender_a": {
"value": 438
}
},
{
"key": "female",
"doc_count": 36,
"gender_a": {
"value": 186
}
}
]
}
я попробовал этот запрос:
{
"aggs": {
"gender_name": {
"terms": {
"field": "gender.name"
},
"aggs": {
"gender_sum": {
"sum": {
"field": "gender.value"
}
}
}
}
}
}
но что-то странное происходит, и я не получаю правильные значения.
любая идея, что мне не хватает?
Не могли бы вы объяснить, почему мне нужно, чтобы он был вложен? Это единственный вариант? Или, может быть, где я могу найти документацию об этом? Благодаря! – Udy
У Elasticsearch должен быть способ группировать документы. Вот достойное объяснение [когда использовать вложенный тип] (https://www.elastic.co/guide/en/elasticsearch/guide/current/nested-aggregation.html#_when_to_use_nested_objects). Другой вариант - это [родительские/дочерние отношения] (https://www.elastic.co/guide/en/elasticsearch/guide/current/parent-child.html), хотя это, вероятно, не самый лучший вариант использования, дело. –