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" :{} }}}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章