java构建es查询条件根据latestTs字段只查一个月以内的数据然后根据latestTs查询一个月内的任意时间段的数据该怎么构建
可以使用range查询来实现根据latestTs字段只查一个月以内的数据,具体如下:
QueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("latestTs")
.format("epoch_millis")
.gte(System.currentTimeMillis() - 2592000000L) // 一个月前的时间戳
.lte(System.currentTimeMillis()); // 当前时间戳
然后根据latestTs查询一个月内的任意时间段的数据,可以在range查询的基础上再添加一个range子查询,具体如下:
QueryBuilder queryBuilder = QueryBuilders.boolQuery()
.must(rangeQueryBuilder)
.must(QueryBuilders.rangeQuery("latestTs")
.format("epoch_millis")
.gte(startTime)
.lte(endTime));
其中,startTime和endTime是查询的起始时间和结束时间,可以根据实际需求设置。这个查询条件可以用于search API的查询参数中
原文地址: https://www.cveoy.top/t/topic/fHxa 著作权归作者所有。请勿转载和采集!