可以使用RangeQueryBuilder来构建范围查询条件,具体如下:

  1. 查询当前系统时间一个月内的文档
long now = System.currentTimeMillis();
long oneMonthAgo = now - 30 * 24 * 3600 * 1000L;

QueryBuilder queryBuilder = QueryBuilders.rangeQuery("latestTs")
        .gte(oneMonthAgo)
        .lte(now);
  1. 查询这个月内的任意时间段的数据
long startTime = ...; // 开始时间,单位毫秒
long endTime = ...; // 结束时间,单位毫秒

QueryBuilder queryBuilder = QueryBuilders.rangeQuery("latestTs")
        .gte(oneMonthAgo)
        .lte(now)
        .gte(startTime)
        .lte(endTime);

其中,gte表示大于等于,lte表示小于等于。在第二个查询条件中,我们在原来的基础上再加上了gte和lte条件,来限制查询的范围

java构建es查询条件根据latestTs字段先构建查询当前系统时间一个月内的文档然后再构建查询这个月内的任意时间段的数据

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

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