【问题标题】:Usage of AggregationContainer in ElasticSearch NESTElasticSearch NEST 中 AggregationContainer 的使用
【发布时间】:2014-09-21 13:08:12
【问题描述】:

我还没有找到关于这部分的文档。是否有正确的方法来构建 AggregationContainer,类似于我们构建 QueryContainer 的方式?一个非常粗略的例子:

.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,那就太好了。提前致谢。

【问题讨论】:

  • NEST 文档已在代码存储库中围绕聚合进行了更新,我们将很快更新公共文档站点。我们一定会在文档中访问此用例。我已经在此处创建了一张记录此问题的票:github.com/elasticsearch/elasticsearch-net/issues/838,我们会在完成后立即回复。

标签: c# elasticsearch aggregation nest


【解决方案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");

【讨论】:

    猜你喜欢
    • 2018-07-26
    • 1970-01-01
    • 2022-09-24
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    • 2015-09-07
    • 1970-01-01
    • 2014-09-17
    相关资源
    最近更新 更多