我试图在短时间内从弹性搜索计算一些统计数据但是,尽管我指定了时间间隔,但我仍然从整个数据集中得到结果。
这是我的代码
var minDate = new DateTime(1970, 1, 1);
var fromDate = DateTime.Parse("2014-11-27T11:00:00.000Z").AddTicks(-minDate.Ticks).AddHours(-2);
var toDate = DateTime.Parse("2014-11-27T11:15:00.000Z").AddTicks(-minDate.Ticks).AddHours(-2);
var results = client.Search<Dalsp>(s => s
.From(0)
.Size(100)
.FacetTermsStats(fts => fts
.FacetFilter(fdesc => fdesc
.Range(range =>
range.Greater(fromDate.Ticks / 10000).Lower(toDate.Ticks / 10000)
)
)
.KeyField(t => t.sp_name)
.ValueField(t => t.total_time)
)
);
可能是什么问题?提前谢谢。
答案 0 :(得分:0)
使用字符串作为时间戳后问题解决了,而不是长。
var results = client.Search<Dalsp>(s => s
.From(0)
.Size(100)
.Query(q =>
q.Range(range => range.OnField("@timestamp").LowerOrEquals(endDateStr).GreaterOrEquals(startDateStr))
)
.FacetTermsStats(fts => fts
.KeyField(t => t.sp_name)
.ValueField(t => t.total_time)
)
);