elasticsearch查询语句个人理解

  1. 指定要查询出来的商品名称和价格
    GET /ecommerce/product/_search
    {
     "query":{
       "match_all":{}
     },
     "_source": ["name","price"]
    }

    其中,参数‘query’  相当于 mysql中的where,match_all相当于m查询所有;
    _source 相当于m需要查询的字段

  2. 搜索商品名称包括牙膏,而且售价大于25元的商品
    GET /ecommerce/product/_search
    {
     "query":{
       "bool":{
         "must":{
           "match":{
             "name":"yagao"
           }
         },
         "filter":{
           "range":{
             "price":{
               "gt":25
             }
           }
         }
       }
     }
    }
    
    

    其中bool的用法:

    bool查询的使用(相当于mysql中 or ,and...)
    Bool查询对应Lucene中的BooleanQuery,它由一个或者多个子句组成,每个子句都有特定的类型。
    
    must
    返回的文档必须满足must子句的条件,并且参与计算分值
    
    filter
    返回的文档必须满足filter子句的条件。但是不会像Must一样,参与计算分值
    
    should
    返回的文档可能满足should子句的条件。在一个Bool查询中,如果没有must或者filter,有一个或者多个should子句,那么只要满足一个就可以返回。minimum_should_match参数定义了至少满足几个子句。
    
    must_nout
    返回的文档必须不满足must_not定义的条件。

     

  3. ES聚合查询

    range使用方法:
    1.先range{需要查询的字段{聚合查询的条件}}
    
    range{
    需要查询的字段{
    	聚合查询的条件
    	}
    }

     

  4. 全文检索和短语搜索

    全文检索会将输入的搜索拆解开来,去倒排索引里去一一匹配,只要能匹配上任意一个拆解后的单词,就可以作为结果返回
    短语搜索,要求输入的搜索串,必须在指定的字段文本中,完全包含一模一样,才可匹配,才能作为结果返回

GET /ecommerce/product/_search
{
 "query":{
   "match":{
     "producer":"yagao producer"
   }
 }
}
GET /ecommerce/product/_search
{
 "query":{
   "match_phrase":{
     "producer":"yagao producer"
   }
 }
}

全文检索使用:match,短语搜索使用match_phrase

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值