search搜索语句之结构化查询语句DSL

本文探讨了Elasticsearch中DSL的使用,包括bool查询和filter查询,讲解了如何构造复杂查询语句,以及queryDSL的概念和优势。通过实例演示了如何新增数据集,并对比了query与filter在速度和效率上的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

结构化查询语句DSL的使用,bool,filter查询等

新增数据集

curl -XPUT -H "Content-Type: application/json" 'localhost:9201/blog/article/7?pretty' -d '

{

  "title": "elk搭建日志采集系统",

  "content":"elk elasticsearch logstash kibana",

  "PV":18

}'

 

什么是query DSL

                   1、Domain Specific Language 领域特定语言

                   2、Elasticsearch提供了完整的查询DSL,基于JSON定义查询

                   3、用于构造复杂的查询语句

 

url查询(空格处理不当,会出问题)

curl -XPOST -H "Content-Type: application/json" 'http://localhost:9201/blog/article/_search' -d '{

    "query" : {

        "term" : { "title" : "elk" }

    }

}'      

         建议使用postman工具

                   post方式提交,增加http头信息

                   body里面选row格式,粘贴对应的dsl即可

 

bool查询入门  

                   {

                     "query": {

                       "bool": {

                         "must": [

                           { "match": { "title": "elk" } }

                         ],

                         "must_not": [

                           { "match": { "title": "小D" } }

                         ]

                       }

                     }

                   }

 

filter查询入门(filtered语法已经在5.0版本后移除了,在2.0时候标记过期,改用filter )

         参考地址:https://www.elastic.co/guide/en/elasticsearch/reference/5.0/query-dsl-filtered-query.html

         {

           "query": {

             "bool": {

               "filter": {

                 "range": {

                   "PV": {

                     "gt": 15

                   }

                 }

               },

               "must": {

                 "match": {

                   "title": "ELK"

                 }

               }

             }

           }

         }

 

         总结:(官网参考 https://www.elastic.co/guide/en/elasticsearch/reference/current/query-filter-context.html)

 

                   1、大部分filter的速度快于query的速度

                   2、filter不会计算相关度得分,且结果会有缓存,效率高

                   3、全文搜索、评分排序,使用query

                   4、是非过滤,精确匹配,使用filter

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值