Elastic Stack--ES的DSL语句查询

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除

学习B站博主教程笔记: 

最新版适合自学的ElasticStack全套视频(Elk零基础入门到精通教程)Linux运维必备—ElasticSearch+Logstash+Kibana精讲_哔哩哔哩_bilibiliicon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1VMW3e6Ezk/?spm_id_from=333.1007.tianma.1-1-1.click&vd_source=e539f90574cdb0bc2bc30a8b5cb3fc00

1、什么是DSL

Elasticsearch提供了基于JSON的完整Query DSL(Domain Specific Language,领域特定语言)来定义查询。

2、全文检索-match查询

 # 查询品牌是"小苹华"的所有商品。背后的逻辑是会对中文进行分词
 POST http://192.168.1.0:9200/cluster-shopping/_search
 {
     "query":{
         "match":{
             "brand":"小苹华"
         }
     }
 }

3、完全匹配-match_phrase查询

 # 查询品牌是"小苹华"的所有商品。背后的逻辑是不会对中文进行分词!!!
 POST http://192.168.1.0:9200/cluster-shopping/_search
 {
     "query":{
         "match_phrase":{
             "brand":"小苹华"
         }
     }
 }

4、全量查询-match_all

 # 请求体内容可以不写,默认就是发起了全量查询(match_all)
 POST http://192.168.1.0:9200/cluster-shopping/_search
 {
     "query":{
         "match_all":{}
     }
 }

5、分页查询-size-from

 POST http://192.168.1.0:9200/cluster-shopping/_search
 {
     "query":{
         "match_all":{}
     },
     "siez": 7,
     "from": 28
 }
 # size:每页显示多少条数据,默认值为10
 # from:指定跳过数据偏移量的大小,默认值为10,即默认看第一页。查询指定页码的from值="(页码-1)*每页数据大小(size)"

6、查看"_source"对象的指定字段

 POST http://192.168.1.0:9200/cluster-shopping/_search
 {
     "query":{
         "match_all":{}
     },
     "siez": 7,
     "from": 28
     "_source":["brand","price"]
 }

7、查询包含指定字段的文档-exists

exists:判断某个字段是否存在,若存在则返回该文档,若不存在,则不返回文档

 POST http://192.168.1.0:9200/cluster-shopping/_search
 {
     "query":{
         "exists":{
             "field": "hobby"
         }
     }
 }

8、语法高亮-highlight

 POST http://192.168.1.0:9200/cluster-shopping/_search
 {
     "query":{
         "match":{
             "brand": "苹果"
         }
     },
     "highlight":{
         "pre_tags": ["<h1>"],       
         "post_tags": ["</h1>"]
         "fileds":{
             "brand":{}
         }
     }
 }
 # highlight:设置高亮
 # fields:指定对哪个字段进行语法高亮
 # pre_tags:自定义高亮的前缀标签
 # post_tags:自定义高亮的后缀标签

9、基于字段进行排序-sort

 POST http://192.168.1.0:9200/cluster-shopping/_search
 {
     "query":{
         "match":{
             "brand": "苹果"
         }
     },
     "sort":{
         "price":{
             "order":"asc"
         }
     }
 }
 # sort:基于指定的字段进行排序
 # order:指定排序的规则,分为"asc"(升序)和"desc"(降序)

10、多条件查询-bool

 POST http://192.168.1.0:9200/cluster-shopping/_search
 {
     "query":{
         "bool":{
             "must":{
                 {
                     "match_phrase":{
                         "brand":"苹果"
                     }
                 },
                 {
                     "match": 5499
                 }
             }
         }
     }
 }
 # bool:可以匹配多个条件查询;其中有"must","must_not","should"

11、范围查询-range

 POST http://192.168.1.0:9200/cluster-shopping/_search
 {
     "query":{
         "bool":{
             "must":{
                 {
                     "match_phrase":"苹果"
                 }
             }   
         },
         "filter":{
             "range":{
                 "price":{
                     "gt": 5000,
                     "lt": 8000
                 }
             }
         }
     }
 }
 # filter:过滤数据
 # range:基于范围进行过滤,此处为基于的是"price"进行过滤;

12、精确匹配查询-terms

 POST http://192.168.1.0:9200/cluster-shopping/_search
 {
     "query":{
         "terms":{
             "price": [4699,299,4066]
         }
     }
 }

致谢

在此,我要对所有为知识共享做出贡献的个人和机构表示最深切的感谢。同时也感谢每一位花时间阅读这篇文章的读者,如果文章中有任何错误,欢迎留言指正。 

学习永无止境,让我们共同进步!!

  • 17
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小李学不完

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

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

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

打赏作者

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

抵扣说明:

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

余额充值