ES查询聚合整理

一、查询

1.简单查询

// post、get方式都行
	{
   
		"query":{
   "match_all":{
   }}
	}

// 对应的SQL语句
select * from student

可以将student表中的所有数据查询出来。

2.精确查询

// post方式
	{
   
 		"query":{
   
 		"term":{
   "name.keyword":"张三"}
		}
	}

// 对应的SQL语句
select * from student where name='张三'

可以将student表中名为张三的数据查询出来。

其中term是用于精确匹配的,类似于sql语句中的“=”,因为“name”字段用的是standard默认分词器,其会将“张三”分成“张”和“三”,并不会匹配姓名为“张三”的人,而name.keyword可以让其不会进行分词。也可以是terms,这个可以用多个值去匹配一个字段,例如:

// post方式
    {
   
      "query": {
   
        "terms": {
   
          "name.keyword": ["张三", "李四"]
        }
      }
    }
    
// 对应的SQL语句
select * from student where name in ('张三','李四')

3.模糊查询

// post方式
    {
   
      "query": {
   
        "match": {
   
          "name": "张"
        }
      }
    }
    
// 对应的SQL语句
select * from student where name like '%张%'

可以将student表中名字带有“张”的查询出来。

4.分页查询

// post方式
    {
   
      "from":0,
      "size":10
    }
    
// 对应的SQL语句
select * from student limit 0,10

5.范围查询

// post方式
    {
   
      "query":{
   
        "range":{
   
          "age":{
   
            "gte":20,
            "lte":30
          }
        }
      }
      
// 对应的SQL语句
select * from student where age>=20 and age<=30

gt: 大于
gte: 大于或等于
lt: 小于
lte: 小于或等于

6.多字段匹配查询

// post方式
  {
   
      "query":{
   
        "multi_match":{
   
          "query":"男",
          "fields":["name","sex"]
        }
      }
// 对应的SQL语句
select 
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值