在聚合助手 ElasticSearch 上使用过滤器时出现空异常
Null exception when using filter on aggregation helper ElasticSearch
我创建了一个 AggregationsHelper
对象并在其上调用了 .Filter
方法
var aggr = new AggregationsHelper();
aggr .Filter("test");
调用 .Filter
函数时出现空异常。我必须以某种方式启动对象吗?
编辑:
正如@Val 所指出的,我必须通过构造函数将字典传递给对象
我真正的问题是如何模拟这种复杂的 ElasticSearch 聚合查询:
var res = ElasticClient.Search<DataRecord>(s => s
.SearchType(SearchType.Count)
.Aggregations(a => a.Filter(
"histIdFilter",
f => f.Filter(
f2 => f2.Term(
t => t.HistoryId,
groupId))
.Aggregations(ag => ag.Filter("timeRangeFilter", fg => fg.Filter(fg2 => fg2.Range(i => i.OnField(b => b.DateTime))))))));
// Applying filter
var ah = res.Aggs;
var histIdAgg = ah.Filter("histIdFilter");
var timeRangeAgg = histIdAgg.Filter("timeRangeFilter");
我成功模拟了查询响应的 .Aggr
属性,使用
datResp.SetupGet(x => x.Aggs).Returns(ah.Object);
但是当我在 ah
对象上调用 .Filter
时,我得到一个空异常,就像由于某种原因没有设置内部字典一样
这是因为在不传递字典的情况下创建AggregationsHelper
时,你会得到一个空指针异常on this line。试试这样:
var temp = new Dictionary<string, IAggregation>();
var aggr = new AggregationsHelper(temp);
aggr.Filter("test");
我创建了一个 AggregationsHelper
对象并在其上调用了 .Filter
方法
var aggr = new AggregationsHelper();
aggr .Filter("test");
调用 .Filter
函数时出现空异常。我必须以某种方式启动对象吗?
编辑:
正如@Val 所指出的,我必须通过构造函数将字典传递给对象
我真正的问题是如何模拟这种复杂的 ElasticSearch 聚合查询:
var res = ElasticClient.Search<DataRecord>(s => s
.SearchType(SearchType.Count)
.Aggregations(a => a.Filter(
"histIdFilter",
f => f.Filter(
f2 => f2.Term(
t => t.HistoryId,
groupId))
.Aggregations(ag => ag.Filter("timeRangeFilter", fg => fg.Filter(fg2 => fg2.Range(i => i.OnField(b => b.DateTime))))))));
// Applying filter
var ah = res.Aggs;
var histIdAgg = ah.Filter("histIdFilter");
var timeRangeAgg = histIdAgg.Filter("timeRangeFilter");
我成功模拟了查询响应的 .Aggr
属性,使用
datResp.SetupGet(x => x.Aggs).Returns(ah.Object);
但是当我在 ah
对象上调用 .Filter
时,我得到一个空异常,就像由于某种原因没有设置内部字典一样
这是因为在不传递字典的情况下创建AggregationsHelper
时,你会得到一个空指针异常on this line。试试这样:
var temp = new Dictionary<string, IAggregation>();
var aggr = new AggregationsHelper(temp);
aggr.Filter("test");