1. 程式人生 > >(九)ElasticSearch高階查詢語法

(九)ElasticSearch高階查詢語法

一 子條件查詢:特定欄位查詢所指特定值。分為:Query context和Filter context 1 Query context 概念:在查詢中,除了判斷文件是否滿足查詢條件外,ES還會計算一個_score來標識匹配的程度,旨在判斷目標文件和查詢條件匹配有多好;常用的查詢有:全文字查詢-針對文字型別資料。欄位級別查詢-針對結構化資料,如數字、日期等。 1-1全文字查詢:分類-模糊匹配(關鍵詞match)、習語匹配(match_phrase)、多欄位匹配(multi_match)、語法查詢 1) 模糊查詢:
模糊查詢結果:
2) 習語查詢:
習語查詢結果:
3) 多欄位查詢:

多欄位查詢結果:
4) 語法查詢:根據一定的語法規則進行的查詢。支援萬用字元、範圍查詢、布林查詢、正則表示式等
結果:

結果:
1-2欄位查詢 1) 查詢特定項:
查詢特定項結果:
2) 範圍查詢:
範圍查詢結果:
3) 日期範圍查詢:
日期範圍查詢結果:
2 Filter context 概念:以一定的邏輯組合子條件查詢。在查詢過程中,只判斷該文件是否滿足條件,只有YES或者NO。做資料過濾,ES會對其結果進行快取,所以相對Query快一些。要結合布林(bool)使用。 結果:
二 複合條件查詢:主要介紹固定分數查詢(將查詢的評估固定下來,不支援match,只支援filter)、布林查詢
1 固定分數查詢 1 )不指定分數,ES估算匹配度,計算分數,預設從大到小排序
結果:
2) 固定分數
結果:
3) 直接指定分數
結果:
2 布林查詢 1) should-或的關係,滿足一個條件即可
結果:
2) must的使用,必須滿足所有條件
結果:
3)must與filter組合,由於我的資料沒有滿足條件的結果,預測查詢結果為null
結果:
4) must對立關鍵詞,表示必須不能滿足該條件
結果: