第七章:ElasticSearch高级查询

1.Query context

1.1模糊查询goods索引name属性

请求地址:

http://localhost:9200/goods/_search

请求参数:

{
  "query": {
    "match": {
      "name": "太平鸟衬衣"
    }
  }
}

选择post提交。

7ed883cbc580630a473fb61671084fa4d96.jpg

在使用模糊查询需要注意一点,上面搜索的条件是“耐克衬衣”,结果搜索出了“耐克运动鞋”和“橘红色衬衣”。因为es会把goods索引里面所有name包含了“耐克”,“衬衣”,“衣”都会检索出来,这就有点像是分词搜索了,和关系型数据库模糊搜索还存在差异的。

 

1.2习语匹配查询goods索引name属性

请求地址:

http://localhost:9200/goods/_search

请求参数:

{
  "query": {
    "match_phrase": {
      "name": "耐克运动"
    }
  }
}

选择post提交。591c87a4e172a99245c5746cb912333787b.jpg

习语匹配就和我们关系型数据库模糊搜索就很相似了。

 

1.3多条件模糊查询goods索引name,describe

请求地址:

http://localhost:9200/goods/_search

请求参数:

{
  "query": {
    "multi_match": {
      "query": "耐克",
      "fields": [
        "name",
        "describe"
      ]
    }
  }
}

选择post提交。368d8936169166710961a8aab8927cefd67.jpg

可以看到检索出来name,describe属性有“紫色”,“巴”的文档。

 

1.4全文本goods索引文本查询

请求参数:

http://localhost:9200/goods/_search

请求地址:

{
  "query": {
    "query_string": {
      "query": "耐克 or 巴啦啦"
    }
  }
}

选择post提交。

cbcfce6799eb0b95fdf369899ceec7163c5.jpg

query_string是文本查询的关键字,通常在Kibana中使用。语法查询支持AND和OR文本查询。还支持“(巴啦啦 AND 耐克) OR 太平鸟”这种文本查询。因为我们这里并没有检索哪些属性,所以这是全文本检索。

 

1.5指定name,describe属性文本查询goods索引文档信息

请求参数:

http://localhost:9200/goods/_search

请求地址:

{
  "query": {
    "query_string": {
      "query": "(耐克 AND 跑鞋) or 紫色",
      "fields": [
        "name",
        "describe"
      ]
    }
  }
}

选择post提交。

5e8bd1affc7fbfcd366b8ce0550f202f7f6.jpg

 

1.6通过具体项查询

请求地址:

http://localhost:9200/goods/_search

请求参数:

{
  "query": {
    "term": {
      "price": 320
    }
  }
}

选择post提交

9b283a41fbcaada4be85515baee4076fe38.jpg

term使用具体项作为关键字。查询price为320的文档信息。

 

1.7通过范围查询

请求地址:

http://localhost:9200/goods/_search

请求参数:

{
  "query": {
    "range": {
      "date": {
        "gte": "2019-03-01",
        "lte": "now"
      }
    }
  }
}

选择post提交。

4bfbdac3205242c7f5e9aa9653646e234df.jpg

range是范围查询的关键字。查询了date属性大于2019-03-01,小于now当前时间。

 

2.Filter context

filter查询后存在缓存里面,相对应query更快一些。

2.1使用filter查询

请求地址:

http://localhost:9200/goods/_search

请求参数:

{
  "query": {
    "bool": {
      "filter": {
        "term": {
          "price": 320
        }
      }
    }
  }
}

选择post提交。

b6e68ebfb85258aeef8f0fbf26844b50ee0.jpg

 

 

转载于:https://my.oschina.net/piaoxianren/blog/3030217

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值