C# Elasticsearch从数组中搜索多个聚合
如何在一个查询中动态组合多个聚合 我知道怎么做“硬编码”: 但是因为我使用了一个包含字段的数组,所以我需要如下内容。但是我得到了一个编译器错误,因为运算符“&=”不能组合“AggregationDictionary”和“TermsAggregation”: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
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"
}
}
}
}