使用Nest的动态子聚合

时间:2017-01-11 06:32:42

标签: elasticsearch nest

我想从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)))
);

0 个答案:

没有答案