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 的时间格式要求。如果时间字段不符合要求,可以通过映射设置时间格式。

Java Elasticsearch 使用 BoolQueryBuilder 根据时间范围查询

原文地址: https://www.cveoy.top/t/topic/oga6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录