Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Elasticsearch从数组中搜索多个聚合_C#_.net_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Nest - Fatal编程技术网 elasticsearch,nest,C#,.net,elasticsearch,Nest" /> elasticsearch,nest,C#,.net,elasticsearch,Nest" />

C# Elasticsearch从数组中搜索多个聚合

C# Elasticsearch从数组中搜索多个聚合,c#,.net,elasticsearch,nest,C#,.net,elasticsearch,Nest,如何在一个查询中动态组合多个聚合 我知道怎么做“硬编码”: 但是因为我使用了一个包含字段的数组,所以我需要如下内容。但是我得到了一个编译器错误,因为运算符“&=”不能组合“AggregationDictionary”和“TermsAggregation”: string[] Fields = new[]{ "field1", "field2" } foreach (string sField in Fields) { request.Aggregations &= new Ter

如何在一个查询中动态组合多个聚合

我知道怎么做“硬编码”:

但是因为我使用了一个包含字段的数组,所以我需要如下内容。但是我得到了一个编译器错误,因为运算符“&=”不能组合“AggregationDictionary”和“TermsAggregation”:

string[] Fields = new[]{ "field1", "field2" }
foreach (string sField in Fields)
{
    request.Aggregations &= new TermsAggregation("agg_" + sField)
    {
        Field = sField
    };
}
我有“产品”、“品牌”、“模型”等领域的文章数据。
对于这个字段,我希望通过聚合获得每个不同的值。它用于显示三个组合框以及每个字段的可能值。

有几种不同的方法可以建立聚合集合。最接近你想做的事情是

var request = new SearchRequest<object>();

string[] Fields = new[] { "field1", "field2" };
AggregationBase aggregations = null;  
foreach (string sField in Fields)
{
    var termsAggregation = new TermsAggregation("agg_" + sField)
    {
        Field = sField
    };

    if (aggregations == null)
    {
        aggregations = termsAggregation;
    }
    else
    {
        aggregations &= termsAggregation;
    }
}

request.Aggregations = aggregations;

client.Search<object>(request);

有几种不同的方法可以用来建立聚合集合。最接近你想做的事情是

var request = new SearchRequest<object>();

string[] Fields = new[] { "field1", "field2" };
AggregationBase aggregations = null;  
foreach (string sField in Fields)
{
    var termsAggregation = new TermsAggregation("agg_" + sField)
    {
        Field = sField
    };

    if (aggregations == null)
    {
        aggregations = termsAggregation;
    }
    else
    {
        aggregations &= termsAggregation;
    }
}

request.Aggregations = aggregations;

client.Search<object>(request);

@Russ cam,请帮帮忙@Russ cam,帮帮忙
{
  "aggs": {
    "agg_field1": {
      "terms": {
        "field": "field1"
      }
    },
    "agg_field2": {
      "terms": {
        "field": "field2"
      }
    }
  }
}