Java Elasticsearch 使用 BoolQueryBuilder 根据时间范围查询
BoolQueryBuilder 是 Elasticsearch 中的一个查询构建器,用于构建复杂的查询语句。
要根据时间范围查询,需要使用 rangeQuery,设置时间字段的范围条件。以下是一个示例:
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.index.query.RangeQueryBuilder;
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
// 设置时间范围条件
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery('时间字段名');
rangeQueryBuilder.gte('开始时间');
rangeQueryBuilder.lte('结束时间');
boolQueryBuilder.filter(rangeQueryBuilder);
// 添加其它查询条件
// ...
// 执行查询
SearchResponse response = client.prepareSearch('索引名')
.setQuery(boolQueryBuilder)
.setSize(10)
.get();
其中,boolQueryBuilder.filter() 方法用于添加过滤条件,即只查询符合条件的文档,而不会影响查询结果的相关度得分。在该方法中,使用 rangeQueryBuilder 设置时间范围条件。
需要注意的是,时间字段的格式应该符合 Elasticsearch 的时间格式要求。如果时间字段不符合要求,可以通过映射设置时间格式。
原文地址: https://www.cveoy.top/t/topic/oga6 著作权归作者所有。请勿转载和采集!