elasticsearch 使用DateRange筛选器的ElasticSearch筛选器聚合,elasticsearch,elasticsearch" /> elasticsearch 使用DateRange筛选器的ElasticSearch筛选器聚合,elasticsearch,elasticsearch" />

elasticsearch 使用DateRange筛选器的ElasticSearch筛选器聚合

elasticsearch 使用DateRange筛选器的ElasticSearch筛选器聚合,elasticsearch,elasticsearch,我一直在使用ElasticSearch中的过滤器聚合,它允许我指定独立的过滤器,每个过滤器为提供的每个过滤器提供单独的计数 我无法将DataRangeQuery作为筛选器运行。如果我添加一个DateRangeQuery作为过滤器,Elastic会给我以下错误。有人知道如何将日期范围查询作为筛选器放入筛选器聚合中吗 “搜索\u阶段\u执行\u异常” 下面是一个示例用例,用于说明我从业务角度尝试做的事情 内容类型:任务 截止日期方面 今天到期减去7天 本周到期 下周到期 我在下面提供了相关NES

我一直在使用ElasticSearch中的过滤器聚合,它允许我指定独立的过滤器,每个过滤器为提供的每个过滤器提供单独的计数

我无法将DataRangeQuery作为筛选器运行。如果我添加一个DateRangeQuery作为过滤器,Elastic会给我以下错误。有人知道如何将日期范围查询作为筛选器放入筛选器聚合中吗

“搜索\u阶段\u执行\u异常”

下面是一个示例用例,用于说明我从业务角度尝试做的事情

内容类型:任务

截止日期方面

  • 今天到期减去7天
  • 本周到期
  • 下周到期
我在下面提供了相关NEST/.Net弹性代码的代码片段

aggs.Add(facet.Name,新过滤器聚合(Constants.CONST\u FACETNAME\u DUEDATE)
{
OtherBucket=false,
过滤器=新名称过滤器容器
{
{Constants.CONST_todaymus7,buildtodaymus7天(DateTime.Now.AddDays(-7).ToString(),“endDate”)&&filter},
{Constants.CONST_TODAY,BuildTodayQuery()},
{Constants.CONST_THISWEEK,BuildThisWeekQuery()},
{Constants.CONST_NEXTWEEK,BuildNextWeekQuery()},
{Constants.CONST_next30天,buildnext30天(),
{Constants.CONST_LASWEEK,BuildLastWeekQuery()},
{Constants.CONST_NO_DUE_DATE,BuildNoDueDateQuery()}
}
});
....
private DateRangeQuery BuildTodayMinus7天(字符串日期,字符串字段)
{
var qDateRange=新的日期范围查询
{
字段=字段,
GreaterThanOrEqualTo=日期,
};
返回QDaterRange;

}
我明白了为什么这不起作用。我在Kibana中运行了查询,得到了这个更有用的错误:

“原因”:“未能解析格式为[strict_date_optional_time | epoch_millis]的日期字段[11/09/2019 16:06:15]”

因此,似乎在FiltersAggregation中允许使用DateRangeQuery。我的问题是,我传递的日期格式不正确,并且错误具有误导性

我通过将传递到DateRangeQuery的日期设置为以下格式进行了修复:

'BuildToday少于7天(DateTime.Now.AddDays(-7).ToString(“yyyy-MM-dd”),“endDate”)'