以下是一个示例代码,用于构建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字段在一个月前和当前系统时间之间的范围。可以根据具体的需求进行调整

java构建es查询条件根据latestTs字段查询当前系统的时间时间戳一个月内的某个时间段数据

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

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