ElasticSearch 花式搜索详解(第七更)

ES复杂查询

先了解搜索后的结构体!

在这里插入图片描述
注意 在kibana中每个key 在后面结合springboot后都是对应的对象!

筛选字段 source

  "_source": ["field","field",...]

在这里插入图片描述
如果设置source就像mysql中指定字段名一样!

排序 sort

"sort": [
    {
      "age": {  #这是个集合,代表可以有多个值进行排序
        "order": "desc" #asc或desc
      }
    }
  ]

在这里插入图片描述

分页 form,size

  "from": 0, #从第几个数据开始
  "size": 1  #显示多少条

在这里插入图片描述

多条件匹配查询 must 相当于mysql中的关键词and

使用must可以将条件进行and匹配

GET /my_index6/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "name": "张"
          }
        },
        {
          "match": {
            "age": 23
          }
        }
      ]
    
    }
  }
}

在这里插入图片描述

可以把match换成term 单词进行精确匹配

多条件匹配 should 相当于 mysql中的关键词or

使用should 可以将条件进行or匹配

GET /my_index6/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "name": "张二狗"
          }
        },
        {
          "match": {
            "age": 23
          }
        }
      ]
    }
  }
}

在这里插入图片描述

多条件查询 must_not 不等于 则匹配

多条件 and关系

GET /my_index6/_search
{
  "query": {
    "bool": {
      "must_not": [
        {
          "match": {
            "age": 23
          }
        }
      ]
    }
  },
  "_source": ["age"]
}

在这里插入图片描述

复杂查询 fitle 过滤

  • gt #大于 >
  • gte #大于等于 >=
  • lt #小于 <
  • lte #小于等于 <=

查询年龄在22到24之间的数据

      "filter": [
        {
          "range": {
            "age": {
              "gte": 22,
              "lte": 24
            }
          }
        }
      ]

在这里插入图片描述

复杂查询 一个字段多条件匹配 or

只需要空格隔开就行

在这里插入图片描述

text和keyword、match和term区别

  • text 会被分词器解析
  • keyword 不会被分词器解析
  • match 会模糊匹配
  • term 会精确匹配(词),且会使用倒排索引,效率相对来说要高很多
  • term+keyword 最精确查询

高亮查询

  "highlight": {
    "fields": {
      "name": {}
    }
  }

在这里插入图片描述
默认高亮是em标签,我们还可以自定义标签和样式

在这里插入图片描述

总结!

  • 匹配
  • 按条件匹配
  • 精确匹配
  • 排序
  • 区间范围匹配
  • 区间过滤匹配
  • 分页
  • 单个字段 多条件匹配
  • 高亮查询 自定义标签
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

掂掂三生有幸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值