2019最新ElasticSearch6.5.4中多种搜索方式

1、query string search
  搜索全部:GET /index/type/_search
  结果剖析:

"took" : 14, 			耗时几毫秒
 "timed_out" : false,	是否超时,这里没有超时
 "_shards" : {
   "total" : 5,			数据拆成了5个分片,所以对于搜索请求,会达到所以的primary shard(或则是它的某个primary sha也可以)
  "successful" : 5,
  "skipped" : 0,
   "failed" : 0
  },
   "hits" : {
     "total" : 3,			查询结果的数量。3个document
     "max_score" : 1.0,	score的含义:就是document对于一个search的相关度匹配的分数,分数越高,越相关就越匹配
     "hits" : [			包含了搜索匹配的document的详细数据

搜索商品指定名称,并且按照售价进行排序
 格式:

GET /index/type/_search?q=name: 指定名称 & sort= price:desc

2、query DSL:Domain Specified language:特定领域的语言
 http reques body:请求体,可以用json的格式来构建语法,比较简单,可以构建各种复杂的语法,比query string search强大
 查询所有商品:

GET /index/type/_search
{
	"query":{
		"match_all" :{}    //match_all:匹配全文
	}
}

例子:

查询名称包含指定名称的商品,同时售价按照降序排序
GET /index/type/_search
{
  "query": {
    "match": {          //match:只匹配一次
      "name": "指定名称"
    }
  },
  "sort": [
    { "price": "desc"}
  ]
}

分页查询商品,总共3条数据,假设每页显示一条数据,现在显示第二页,查出两条商品
GET /index/type/_search
{
  "query": {
    "match_all": {}
  }, 
  "from": 1,     //从第几条数据开始查
  "size": 2      //显示多少条数据
}
只查询名称和价格
GET /index/type/_search
{
  "query": {
    "match_all": {}
  },
  "_source": ["name","price"]
}

3、query filter(对数据进行过滤)

包含指定商品名称,而且价格大于30元的商品

GET /index/type/_search
{
  "query": {
    "bool": {		//布尔表达式
      "must": {		//必须匹配(这里的意思是和指定商品,必须匹配)
        "match":{
          "name": "指定商品"
        }
      },
      "filter": {
        "range": {			//区间范围
          "price": {"gt": 25}
          }
        }
      }
    }
  }

4、full-text search(全文检索)

GET /index/type/_search
{
  "query": {
    "match": {
      "producer": "yagao producer"
    }
  }
}

5、phrase search(短语检索)
跟全文检索,完全相反,全文检索会将输入的搜索串拆开来,然后在去索引里面匹配,只要能匹配到任意一个拆解后的单词,就可以作为结果返回
短语检索,要求输入的搜索串,必须在指定的文本字段中,必须完全一模一样,才能被返回

GET /idnex /type/_search
{
  "query": {
    "match_phrase": {
      "producer": "搜索串"     要求和文本的字段必须匹配或者文本中包含搜索串则被返回
    }
  }
}

6、highlight search(高亮显示)
搜索指定商品名称,并高亮显示

GET /ecommerce/product/_search
{
  "query": {
    "match": {
      "producer": "指定商品"
    }
  },
  "highlight": {
    "fields": {
      "producer":{}			//producer:只是一个字段:也就是高亮的名称在该字段中包含
    }
  }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值