我还没有找到关于这部分的文档。有没有一种正确的方法来构建一个类似于我们如何构建QueryContainer的AggregationContainer?一个非常粗略的例子:
.Aggregations(a =>
{
AggregationContainer aggr = null;
if (variableA) //if value of variableA is true
aggr &= //concatenate aggregation statement here, e.g fieldA == variableA
return aggr;
}
)
或者是否有任何其他方式可以合并if else语句,聚合范围?
包含一些可能使用AggregationContainer的可能示例会很有趣。谢谢你提前。
答案 0 :(得分:1)
您需要使用AggregationDescriptor追加
var qryRes11 = client.Search<object>(x => x
.Aggregations(a =>
{
AggregationDescriptor<object> v = new AggregationDescriptor<object>();
v.Terms("a", tr =>
{
TermsAggregationDescriptor<object> trmAggDescriptor = new TermsAggregationDescriptor<object>();
trmAggDescriptor.Field("a");
trmAggDescriptor.Size(0);
return trmAggDescriptor;
});
return v;
}));
var terms1 = qryRes1.Aggs.Terms("a");