elasticSearch高级查询
| SearchRequest searchRequest = new SearchRequest(); |
| searchRequest.indices("user"); |
全量查询
| searchRequest.source(new SearchSourceBuilder().query(QueryBuilders.matchAllQuery())); |
| |
| SearchResponse searchresponse = esClient.search(searchRequest, RequestOptions.DEFAULT); |
| SearchHits hits = searchresponse.getHits(); |
| |
| System.out.println(hits.getTotalHits()); |
| System.out.println(searchresponse.getTook()); |
| |
| |
| for ( SearchHit hit: hits){ |
| System.out.println(hit.getSourceAsString()); |
| } |
| |
条件查询
| searchRequest.source(new SearchSourceBuilder().query(QueryBuilders.termQuery("age",30))); |
| |
| SearchResponse search = esClient.search(searchRequest, RequestOptions.DEFAULT); |
| SearchHits hits1 = search.getHits(); |
| for (SearchHit hit:hits1){ |
| System.out.println(hit.getSourceAsString()); |
| } |
| |
分页查询
| SearchSourceBuilder builder = new SearchSourceBuilder().query(QueryBuilders.matchAllQuery()); |
| |
| builder.from(0); |
| |
| builder.size(2); |
| searchRequest.source(builder); |
| |
| SearchResponse search1 = esClient.search(searchRequest, RequestOptions.DEFAULT); |
| |
| for (SearchHit hit : search1.getHits()){ |
| System.out.println(hit.getSourceAsString()); |
| } |
查询排序
| builder.sort("age", SortOrder.DESC); |
过滤字段
| |
| String[] excludes = {}; |
| |
| String[] includes = {"name"}; |
| builder.fetchSource(includes,excludes); |
| |
组合查询
| SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); |
| BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); |
| |
| |
| |
| |
| boolQueryBuilder.should(QueryBuilders.matchQuery("age",30)); |
| boolQueryBuilder.should(QueryBuilders.matchQuery("age",40)); |
| |
| searchSourceBuilder.query(boolQueryBuilder); |
| |
范围查询
| RangeQueryBuilder rangeQuery = QueryBuilders.rangeQuery("age"); |
| |
| rangeQuery.gte(30); |
| rangeQuery.lte(50); |
| |
| searchSourceBuilder.query(rangeQuery); |
模糊查询
| searchSourceBuilder.query(QueryBuilders.fuzzyQuery("name","wangwu").fuzziness(Fuzziness.ONE)); |
高亮查询
| |
| TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("name", "zhangsan"); |
| |
| HighlightBuilder highlightBuilder = new HighlightBuilder(); |
| highlightBuilder.preTags("<font color = 'red'>"); |
| highlightBuilder.postTags("</font"); |
| highlightBuilder.field("name"); |
| |
| searchSourceBuilder.highlighter(highlightBuilder); |
| searchSourceBuilder.query(termQueryBuilder); |
| |
聚合查询
| MaxAggregationBuilder field = AggregationBuilders.max("maxAge").field("age"); |
| |
| searchSourceBuilder.aggregation(field); |
分组查询
| |
| TermsAggregationBuilder field1 = AggregationBuilders.terms("ageGroup").field("age"); |
| searchSourceBuilder.aggregation(field1); |
| |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端