我正在尝试在C#中运行聚合查询(使用nest 5),但我不知道输入了多少聚合和聚合类型。
例如,一个查询是: {"aggs":{"type_count":{"terms":{"field":"type"}}}}
另一个查询可能是: {"aggs":{"type_count":{"terms":{"field":"type"}},"salary_count": {"field":"salary"}}}
还有其他查询可能根本不包含聚合。
如何在C#中以动态方式编写此代码?
这是我尝试过的(我为所选聚合类型设置了特定情况。问题在于该代码仅支持一个聚合。)
例如,一个查询是: {"aggs":{"type_count":{"terms":{"field":"type"}}}}
另一个查询可能是: {"aggs":{"type_count":{"terms":{"field":"type"}},"salary_count": {"field":"salary"}}}
还有其他查询可能根本不包含聚合。
如何在C#中以动态方式编写此代码?
这是我尝试过的(我为所选聚合类型设置了特定情况。问题在于该代码仅支持一个聚合。)
SearchDescriptor<object> SearchAgg = new SearchDescriptor<object>();
for (i=0;i < aggList.length;i++)
{
SearchAgg.Aggregations(a => a.terms (aggList[i]), t=> t.Field(aggList[i]));
}
编辑:
我成功使用以下代码添加了多个聚合:
AggregationContainerDescriptor<SearchRequest> agg = new
AggregationContainerDescriptor<SearchRequest>();
agg.Terms("bucket", tm=> tm.Field("field"));
agg &= new AggregationContainerDescriptor<SearchRequest>().Terms("bucket2", tm=> tm.Field("field2"));
谢谢