elasticsearch 高級查詢


高級查詢

子條件查詢  (特定字段查詢所指特定值)

復合條件查詢  (以一定的邏輯組合子條件查詢)

 

一、子條件查詢

子條件查詢分為 query context、filter context

1.query context

在查下過程中,出來判斷文檔是否滿足查詢條件外,ES還會計算一個_score來表示匹配的程度,指在判斷目標文檔和查詢條件匹配的有多好

① 全文本查詢(針對文本類型數據)

模糊匹配查詢

短語匹配(當我們使用match時,他會匹配title中含有java或從入門的數據;如果使用match_phrase則會匹配"java從入門"這個字段)

多字段匹配模糊匹配查詢  查詢author或者title中含有張三的數據

語法查詢 使用關鍵字 query_string   查詢含有java 和 精通 或 mysql的數據

也可以指定那些字段中含有這些關鍵字

 

② 字段級別查詢(針對結構化數據,如數字、日期等)

查詢作者是張三的數據

 

范圍查詢 查詢字數大於等於2000並且小於等於4000的數據,如果將gte,lte換成 gt和lt就不包含等於

 

查詢某個時間段內的數據 當前時間可以使用now

 

2.filter context

在查詢過程中,只判斷該文檔是否滿足條件,只有yes或者no

elasticsearch會對filter的數據做緩存,但是要結合bool使用,性能會比query好點

 

二、復核條件查詢 

固定分數查詢、布爾查詢等等

固定分數查詢,默認1 固定分數會做緩存

指定分數為2  

關鍵詞 bool  should 兩個條件 author和title是或的關系

關鍵詞 bool  must 兩個條件 author和title是與的關系

關鍵詞 bool  must  filter過濾

關鍵詞 bool  must_not 查詢作者不是張三的數據

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM