高級查詢query
阿新 • • 發佈:2017-12-22
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