高級查詢
子條件查詢 (特定字段查詢所指特定值)
復合條件查詢 (以一定的邏輯組合子條件查詢)
一、子條件查詢
子條件查詢分為 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 查詢作者不是張三的數據