java构建es查询条件根据latestTs字段查询当前系统的时间时间戳一个月内的某个时间段数据
以下是一个示例代码,用于构建ES查询条件,以根据latestTs字段查询一个月内的某个时间段数据:
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import java.time.Instant;
import java.time.temporal.ChronoUnit;
// 构建查询条件的方法
public BoolQueryBuilder buildQuery() {
BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
// 获取当前系统时间的时间戳
long currentTimestamp = Instant.now().getEpochSecond();
// 计算一个月前的时间戳
Instant oneMonthAgo = Instant.now().minus(1, ChronoUnit.MONTHS);
long oneMonthAgoTimestamp = oneMonthAgo.getEpochSecond();
// 构建时间段查询条件
boolQuery.must(QueryBuilders.rangeQuery("latestTs")
.gte(oneMonthAgoTimestamp)
.lte(currentTimestamp));
return boolQuery;
}
在上述代码中,我们使用了ES的range查询条件,指定了latestTs字段在一个月前和当前系统时间之间的范围。可以根据具体的需求进行调整
原文地址: https://www.cveoy.top/t/topic/fHHU 著作权归作者所有。请勿转载和采集!