我想从List或Dictionary中动态创建Nest搜索查询的子聚合。下面是编译时编写的工作代码。在里面 在下面的示例中,日期将首先由字段MonthandYear和 然后是另外两个字段dimensionname和的子聚合 measurename。
现在考虑我必须在运行时写这个查询。我会得到三个 (可能或多或少)列表或字符串[]或查询字符串和i中的字段 必须在运行时形成相同的聚合查询。我用过 termsaggregationcontainer对象来构建我的聚合但我不能 将聚合附加到循环上的现有字段。
如果我还不清楚,请告诉我。我会尝试写一些样本 我之前尝试的代码。
client.Search<object>(s => s
.Index("masterdata")
.Type("masterdatatype")
.Aggregations(agr => agr.Terms("Date", tr => tr.Field("MonthandYear").Size(int.MaxValue).Order(TermsOrder.TermAscending)
.Aggregations(a => a.Terms("DimensionValue", te => te.Field(dimensionName ).Size(int.MaxValue)
.Aggregations(ag => ag.Sum("SumofMeasure", t => t.Field(measureName)))))))
.Query(a => a.Terms(t => t.Field(filterName).Terms(filterValues)))
);