Начал писать комментарий, но, может быть, давайте ответим :))
Здесь - документы для написания агрегаций с использованием синтаксиса NEST.
Как показывает пример, для этой выборки агрегации:
{
"aggs": {
"name_of_child_agg": {
"children": {
"type": "commits"
},
"aggs": {
"average_per_child": {
"avg": {
"field": "confidenceFactor"
}
},
"max_per_child": {
"max": {
"field": "confidenceFactor"
}
},
"min_per_child": {
"min": {
"field": "confidenceFactor"
}
}
}
}
}
}
Вы можете написать этот свободный NEST код:
s => s
.Aggregations(aggs => aggs
.Children<CommitActivity>("name_of_child_agg", child => child
.Aggregations(childAggs => childAggs
.Average("average_per_child", avg => avg.Field(p => p.ConfidenceFactor))
.Max("max_per_child", avg => avg.Field(p => p.ConfidenceFactor))
.Min("min_per_child", avg => avg.Field(p => p.ConfidenceFactor))
)
)
)
Кроме того, я не думаю, что вы хотите использовать тип JObject
в качестве POCO, этот должен пролить некоторый свет на то, как использовать ваш пользовательский тип для отображения класса c # в типasticsearch. Причина этого заключается в том, чтобы иметь тип, отвечающий только за «общение» сasticsearch, поэтому наличие JObject
в этой роли может быть не лучшим вариантом, так как это не тип, созданный вами, и он может развиваться в будущем так, как вы это делаете. не хочу.