ES 常用查询

1.term精确查找,实际上是包含的意思

用法一:与bool,filter使用

GET ZF_en/_search
{
  "query": {
     "bool": {
       "filter": {
         "term": {
           "grids": "604"
         }
       }
     }
  }
}

用法二:直接term查询

GET ZF_en/_search
{
  "query": {
    "term": {
      "grids": {
        "value": "604"
      }
    }
  }
}

2._bulk 批量写入,注意,必须指定_id,须换行

如果_id存在,执行的是update操作

3.组合查询,bool(布尔)过滤器

一个bool(布尔)过滤器由三部分组成:

{
   "bool" : {
      "must" :     [],
      "should" :   [],
      "must_not" : [],
   }
}

must:所有的语句都 必须(must) 匹配,与 AND 等价。

should:至少有一个语句要匹配,与 OR 等价

must_not:所有的语句都 不能(must not) 匹配,与 NOT 等价。

无嵌套多条件组合查询:

查询性别是男或者年龄是27岁,但性别不是女的用户

bool与term精确查找:

查询年龄是27岁的用户

注意:精确查找必须与filter一起使用

4.查找多个精确值:

terms多个值精确搜索,查找条件改为数组

查找年龄为25或27岁的用户

5.范围查询

range,类似于sql中的between and,可选范围表达式:

gt: > 大于(greater than)
lt: < 小于(less than)
gte: >= 大于或等于(greater than or equal to)
lte: <= 小于或等于(less than or equal to)

数字范围查找,查询年龄25到27岁的用户

日期范围查找,查询1992年出生的用户

字符串范围查询

在倒排索引中的词项就是采取字典顺序(lexicographically)排列的,这也是字符串范围可以使用这个顺序来确定的原因。

注意如果查询字段不支持按字母排序,查询无结果

6.空值查询

exists,类似sql中的is not null

查询tags不为空的

missing,类似sql中的is null

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值