基于Mysql理解 Java RestHighLevelClient ES查询语句

//起手构建请求
SearchRequest request = new SearchRequest();

request常用操作:

  1. 指定索引,可传入多个索引,支持通配符*
    request.indices(String[] tables) 等同于 select xx from table1,table2…

//构建查询
SearchSourceBuilder builder = new SearchSourceBuilder();

builder常用操作:

  1. 分页查询
    builder.from(0)
    builder.size(10) 等同于 limit 1,10
  2. 排序
    builder.sort(“age”, SortOrder.DESC) 等同于 order by age desc
  3. 过滤字段
    String[] includes = {“name”};
    String[] excludes = {};
    query3.fetchSource(includes, excludes); 等同于 select name from index

//给SearchSourceBuilder设置查询条件

  1. builder.query(QueryBuilder queryBuilder);
    // 聚合查询操作

  2. builder.aggregation(AggregationBuilder aggregation);

    常用QueryBuilder :

    1. QueryBuilders.matchAllQuery() 等同于 select * from index
    2. QueryBuilders.matchQuery() 等同于 select * from index where xxx
    3. QueryBuilders.boolQuery() 布尔类型查询,可传入多个各种QueryBuilder,构建更复杂的查询,每个QueryBuilder 相当于加了个()
    4. QueryBuilders.rangeQuery() 范围查询 等同于 where flied < and > filed
    5. QueryBuilders.fuzzyQuery() 模糊查询 .fuzziness() 函数指定模糊字符偏移量

    常用AggregationBuilder :

    1. AggregationBuilders.max(“maxAge”).field(“age”); 最大值,等同于函数 select max(“age”) as maxAge
    2. AggregationBuilders.terms(“ageGroup”).field(“age”); 分组查询,等同于 group by age

QueryBuilders.boolQuery()常用函数:
1. 多个must(QueryBuilder)          等同于  ( QueryBuilder1 ) and ( QueryBuilder2 ) 多个must 取 ∩ 交集
2. 多个should(QueryBuilder)        等同于  ( QueryBuilder1 ) or  ( QueryBuilder2 )  多个should 取 ∪ 并集
3. 单个must/should                 等同于  where xx = xx,单个must/should传入的QueryBuilder,符合这个条件

        //must -> SQL ‘=’ ‘and’
        boolQueryBuilder.must(QueryBuilders.matchQuery("age", "24"));
        //should -> SQL ‘or’
        boolQueryBuilder.should(QueryBuilders.matchQuery("age", "24"));
        boolQueryBuilder.should(QueryBuilders.matchQuery("age", "25"));
        
        
QueryBuilders.rangeQuery()常用函数:  
4. rangeQuery.gte("25");           大于,对于指定字段进行大小判断
5. rangeQuery.lte("30");           小于,对于指定字段进行大小判断

request.source(query);

SearchResponse response = client.search(request, RequestOptions.DEFAULT);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值