1. 程式人生 > >高級查詢query

高級查詢query

query aaa 範圍查詢 bsp title ring 字段 nbsp score

子條查詢 特定字段查詢所有特定值
子條件查詢(Query context Filter context)兩種查詢方式
1)Query context:
在查詢過程中,除了判斷文檔是否滿足查詢條件之外,es還會計算一個_score來標識匹配的程度,旨在判斷目標文檔和查詢條件匹配的有多好(吻合度)。
常用查詢:
全文本查詢 針對文本類型數據
字段級別查詢 針對結構化數據,如數字,日期等
1.全文本查詢:

127.0.0.1/book/_search

    { 
     "query"{  //關鍵詞
         "match":{ //模糊查詢關鍵詞
        "author":"瓦力"
        }
         }
      }
      模糊查詢問題(不精確)
    match_phrase  
//短語句匹配(完全匹配) { "query"{ //關鍵詞 "match_phrose":{ //模糊查詢關鍵詞 "author":"瓦力" } } }

完全匹配可能比較嚴,我們會希望有個可調節因子,少匹配一個也滿足,那就需要使用到slop。

{
      "query": {
        "match_phrase": {
        "content" : {
            "author" : "我的寶馬多少馬力",
            "slop" : 1
        }
        }
      }
    }

多個匹配查詢(multi_match)

{
      "query": {
        "multi_match": {
        "query" : "我的寶馬多少馬力",  //query信息,要查詢的數據,比如要查詢(我的寶馬多少馬力)
        "fields" : ["title", "content"] //指定查詢的字段,關系為或
        }
      }
    }

語法查詢(query_string)

{
     "query_string":{
        "query": "aaaa"//指定的查詢內容關鍵詞
      }
     }

查詢多個數據

{
     "query_string":{
        "query": "(aaaa) OR python"//指定的查詢內容關鍵詞,查詢aaa或者python的關鍵詞
      }
     }

查詢多個字段

 {
     "query_string":{
        "query": "aaaa OR python"//指定的查詢內容關鍵詞,查詢aaa或者python的關鍵詞
        "field":["title","author"]//指定查詢的字段
      }
     }

2.結構化的查詢:

{
      "query":{
         "term":{//關鍵詞,具體象
           "word_count":1000   //例如字段字數在某個特定值的數值
           
          }
       }
     }

範圍查詢:

{
      "query":{
         "range":{//關鍵詞,範圍
           "word_count":1000   //指定例如字段word_count字數在某個範圍的數值
           "get":1000 //大於等於1000 ge 等於
           "lte":2000 //小於等於2000 如時間,2000改為now這個關鍵詞
          }
       }
     } 

條件查詢 以一定的邏輯組和子條件查詢

高級查詢query