ElasticSearch学习之路:各种搜索

1、query string search

GET /user_index/user_type/_search

took:耗费了几毫秒
timed_out:是否超时,这里是没有
_shards:数据拆成了几个分片,所以对于搜索请求,会打到所有的primary shard(或者是它的某个replica shard也可以)
hits.total:查询结果的数量,3个document
hits.max_score:score的含义,就是document对于一个search的相关度的匹配分数,越相关,就越匹配,分数也高
hits.hits:包含了匹配搜索的document的详细数据

GET /user_index/user_type/_search?q=name:baba&sort=age:desc

2、query DSL查询

DSL:Domain Specified Language,特定领域的语言
http request body:请求体,可以用json的格式来构建查询语法,比较方便,可以构建各种复杂的语法,比query string search强大方便。

GET /user_index/user_type/_search
{
  "query": { "match_all": {} }
}

1)查询名称包含baba的信息,同时按照价格降序排序

GET /user_index/user_type/_search
{"query": { "match": { "name":"baba"}},"sort":[{"age":"desc"}]}

2)分页查询信息,每页显示2条,查询第二页,并按年龄倒叙排序。

form:分页起始位置,从0开始,

size:页面大小。

GET /user_index/user_type/_search
{
  "query": { "match": {
    "name":"baba"
  }
  }, "from": 0,
  "size": 2,
  "sort":[{
    "age":"desc"
  }]
}

3)只要查询出来用户的名称和年龄

_source:["filed1","filed2"]:[]是要查的参数。

GET /ear_index/ear_type/_search
{
  "query": {
    "match": {
    "name":"baba"
  }},
  "_source": ["name","age"], 
  "from": 0,
  "size": 2,
  "sort":[{
    "age":"desc"
  }]
}

3、query filter 过滤查询

 4)根据名称查询年龄大于10小于20的用户信息

GET /user_index/user_type/_search
{
  "query":{
    "bool": {
     "must":{
        "match":{
        "name":"baba"
      }
     },"filter": {
       "range": {
         "age": {
           "gte": 10,
           "lte": 20
         }
       }
     }
  }
 }
}

4、full-text search(全文检索)会分解成一个个单字或单词,然后通过倒排索引,一个个匹配你要搜索的信息。

GET /user_index/user_type/_search
{
  "query":{
    "match": {
      "desc": "12323"
    }
 }
}

5、phrase search(短语搜索)

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

GET /user_index/user_type/_search
{
  "query":{
    "match_phrase": {
      "desc": "12323"
    }
 }
}

6、highlight search(高亮搜索结果)highlight :高亮显示字段

GET /user_index/user_type/_search
{"query":{"match": {"desc": "12323"}},
 "highlight": {"fields" : {"desc" :{} }}}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值