ES检索条件:
其他条件
AND
((字段A >=2023-01-01 AND 字段A<=2023-12-31)
OR
(字段B>=2023-01-01 AND 字段B <=2023-12-31))
springboot集成ES,如何实现多字段条件查询
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- MarkHan_ 2023-07-20 15:42关注
import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.io.IOException; import java.time.LocalDate; import java.time.format.DateTimeFormatter; @Service public class YourSearchService { private final RestHighLevelClient elasticsearchClient; @Autowired public YourSearchService(RestHighLevelClient elasticsearchClient) { this.elasticsearchClient = elasticsearchClient; } public SearchResponse searchWithMultipleConditions() throws IOException { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDate startDate = LocalDate.parse("2023-01-01", formatter); LocalDate endDate = LocalDate.parse("2023-12-31", formatter); // 构建多字段查询条件 BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery() .must(QueryBuilders.rangeQuery("字段A").gte(startDate).lte(endDate)) .should(QueryBuilders.rangeQuery("字段B").gte(startDate).lte(endDate)); // 构建查询请求 SearchRequest searchRequest = new SearchRequest("your_index_name"); searchRequest.source(new SearchSourceBuilder().query(boolQueryBuilder)); // 执行查询并返回结果 return elasticsearchClient.search(searchRequest, RequestOptions.DEFAULT); } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 已知平面坐标系(非直角坐标系)内三个点的坐标,反求两坐标轴的夹角
- ¥15 webots有问题,无响应
- ¥15 数据量少可以用MK趋势分析吗
- ¥15 使用VH6501干扰RTR位,CANoe上显示的错误帧不足32个就进入bus off快慢恢复,为什么?
- ¥15 大智慧怎么编写一个选股程序
- ¥100 python 调用 cgps 命令获取 实时位置信息
- ¥15 两台交换机分别是trunk接口和access接口为何无法通信,通信过程是如何?
- ¥15 C语言使用vscode编码错误
- ¥15 用KSV5转成本时,如何不生成那笔中间凭证
- ¥20 ensp怎么配置让PC1和PC2通讯上