gpt4 book ai didi

java - 在 ElasticSearch Java API 中过滤 dateHistogram 时间范围

转载 作者:行者123 更新时间:2023-11-30 11:10:59 26 4
gpt4 key购买 nike

我在 ElasticSearch 中通过 Java API 使用 DateHistogram 聚合,但是,即使我添加了一个具有指定的从到时间范围的 postFilter,查询也会返回索引中所有文档的数据直方图。

我使用的代码:

// note: search is the SearchResponse object    
private RangeFilterBuilder getDateRangeFilter(DateTime dateFrom, DateTime dateTo){
return FilterBuilders.rangeFilter("@timestamp").from(dateFrom.getMillis()).to(dateTo.getMillis());
}
// In search method
search.setPostFilter(getDateRangeFilter(dateFrom, dateTo));

并且,聚合:

search.addAggregation(AggregationBuilders
.dateHistogram("histogram")
.field("@timestamp")
.interval(DateHistogram.Interval.DAY));

DataRangeFilter 适用于命中和其他聚合;相反,它不仅适用于 dateHistogram 聚合。如何筛选 dateHistogram 的时间范围?

最佳答案

问题是您使用的是 PostFilter - 聚合作用于查询返回的结果,PostFilter 发生得太晚了。

要使过滤器正常工作,请使用过滤查询(这可能是您想要的查询)或将过滤器作为聚合的一部分。

此页在 filtering queries and aggregations应有尽有。

关于java - 在 ElasticSearch Java API 中过滤 dateHistogram 时间范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27570430/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com