提示:本文章仅参考作用
问题
问题
使用ES进行数据查新时,要根据时间进行聚合分组,如查询某一天,根据每小时分组,但数据索引文档中没有么某一个时间节点的时候,如3-4点的数据,需要对查询结果进行补全。
提示:以下正文内容,案例可供参考
注:ES版本:7.0.1 || NEST 7.3.0
解决
如下代码
DateHistogram = new DateHistogramAggregation("date_histogram")
{
Field ="你需要分组的时间格式字段",
//Format = "yyyy-MM-dd":"HH:mm:ss",
CalendarInterval = DateInterval.Day:DateInterval.Hour,
MinimumDocumentCount = 0,
ExtendedBounds = new ExtendedBounds<DateMath>
{
Minimum = new DateTime(),
Maximum = new DateTime().AddDay(1)
}
},
延申
取出对应聚合桶后可直接使用Date属性做相对应处理,KeyAsString 可直接获取到聚合分组的key
总结
上述中 Format 在ExtendedBounds 属性存在时,不可使用。
MinimumDocumentCount 对文档出现次数符合条件。
ExtendedBounds 为规定一个范围 对此范围的数据进行补充。
ES的学习任重道远。