ES查询相关Java代码(持续更新)
Java代码查询最大值、最小值、平均值
SearchRequest searchRequest = new SearchRequest("自己的索引"); BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); //boolQueryBuilder 中可以加查询的条件 SearchSourceBuilder builder = new SearchSourceBuilder(); builder.query(boolQueryBuilder); //取年龄的最大值,age字段 AggregationBuilder agg = AggregationBuilders.max("aggMax").field("age"); //最小值 //AggregationBuilder min = AggregationBuilders.min("aggMax").field("pmValue"); //平均值 //AggregationBuilder avg = AggregationBuilders.avg("aggMax").field("pmValue"); builder.aggregation(agg); searchRequest.source(builder); SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT); Max max = response.getAggregations().get("aggMax"); //Min min1 = response.getAggregations().get("aggMax"); //Avg avg1 = response.getAggregations().get("aggMax"); double value = max.getValue(); //double value = min1.getValue(); //double value = avg1.getValue();
Java代码实现ES全部字段模糊查询
SearchRequest searchRequest = new SearchRequest("自己的索引"); BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); //可以添加自己的查询条件 String fuzzyStr = "*"+fuzzySearchStr+"*"; if (fuzzySearchStr.matches("^.*\s.*$") || fuzzySearchStr.matches("^.*:.*$")) { fuzzyStr = """ + fuzzyStr+"""; }; boolQueryBuilder .must(QueryBuilders.queryStringQuery("*"+fuzzyStr+"*"));
Java代码实现分组查询总数 根据"city"城市字段
Map<String, Object> resultMap = new HashMap<String, Object>(); SearchRequest searchRequest = new SearchRequest("自己的索引"); BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); //添加自己的查询条件 AggregationBuilder aggregationBuilder = AggregationBuilders.terms("count").field("city.keyword").size(50); SearchSourceBuilder builder = new SearchSourceBuilder(); builder.query(boolQueryBuilder); builder.aggregation(aggregationBuilder); searchRequest.source(builder); SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT); Terms terms = response.getAggregations().get("count"); for (Bucket bucket : terms.getBuckets()) { resultMap.put(bucket.getKey().toString(), bucket.getDocCount()); }
下一篇:
Java集合中快速失败机制详解