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集合中快速失败机制详解
