在ElasticSearch NEST中使用AggregationContainer

时间:2014-07-30 01:44:21

标签: c# elasticsearch aggregation nest

我还没有找到关于这部分的文档。有没有一种正确的方法来构建一个类似于我们如何构建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的可能示例会很有趣。谢谢你提前。

1 个答案:

答案 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");