BSearch-QueryBuilder又稱進階查詢,是一個純前端的工具外掛程式。通過BSearch-QueryBuilder外掛程式,您無需編寫複雜的DSL語句,即可以可視化的方式完成複雜的查詢請求。本文介紹如何使用BSearch-QueryBuilder外掛程式查詢資料。
前提條件
您已完成以下操作:- 建立Elasticsearch執行個體,且執行個體版本為6.3或6.7。
具體操作,請參見建立Elasticsearch執行個體。本文以6.3版本為例。
- 安裝BSearch-QueryBuilder外掛程式。
具體操作,請參見安裝Kibana外掛程式。
- 準備待查詢的索引資料。
具體操作,請參見快速入門。
背景資訊
Query DSL是一個Java開源架構,用於構建安全類型的SQL查詢語句,能夠使用API代替傳統的拼接字串來構造查詢語句。目前Query DSL支援的平台包括JPA、JDO、SQL、Java Collections、RDF、Lucene以及Hibernate Search。
Elasticsearch提供了一整套基於JSON的DSL查詢語言來定義查詢。Query DSL是由一系列抽象的查詢運算式組成,特定查詢能夠包含其它的查詢(如bool),部分查詢能夠包含過濾器(如constant_score),還有的可以同時包含查詢和過濾器(如 filtered)。您可以從Elasticsearch支援的查詢集合裡面選擇任意一個查詢運算式,或者從過濾器集合裡面選擇任意一個過濾器進行組合,構造出複雜的查詢。但編寫DSL容易出錯,僅有少數專業程式人員精通,QueryBuilder能夠協助對Elasticsearch DSL不甚瞭解或者想提升編寫效率的使用者快速產生DSL。

BSearch-QueryBuilder外掛程式具有如下特性:
- 簡單易用:BSearch-QueryBuilder外掛程式提供了可視化的介面點選操作來構造Elasticsearch的DSL查詢請求,無編碼即可完成自訂條件的資料查詢,減少了複雜的DSL的學習成本。也可輔助開發人員編寫或驗證DSL語句的正確性。
- 方便快捷:已經定義的複雜查詢條件會儲存在Kibana中,避免重複構造查詢條件。
- 小巧輕盈:約佔用14MB的磁碟空間,不會常駐記憶體運行,不影響Kibana和Elasticsearch的正常運行。
- 安全可靠:BSearch-QueryBuilder外掛程式不會對使用者的資料進行改寫、儲存和轉寄,原始碼已經通過了阿里雲安全審計。
說明 僅6.3和6.7版本的Elasticsearch執行個體支援BSearch-QueryBuilder外掛程式。
操作步驟
- 登入對應Elasticsearch執行個體的Kibana控制台。具體操作,請參見登入Kibana控制台。
- 可選:在左側導覽列,單擊Management,按照以下步驟建立一個索引模式。重要 如果已經建立了索引模式,可忽略此步驟。
- 在Management頁面,單擊Kibana地區中的Index Patterns。
- 在Create index pattern頁面,輸入索引模式名稱(待查詢的索引名稱)。
- 單擊Next step。

- 單擊Create index pattern。
- 在左側導覽列,單擊Discover。
- 在Discover頁面,單擊右上方功能表列的Query。
- 在查詢地區添加查詢和過濾條件,單擊Submit(提交)。

- 單擊
表徵圖,添加一個查詢條件。 - 單擊
表徵圖,為查詢添加一個子過濾條件。 - 單擊
表徵圖,刪除一個查詢或過濾條件。
BSearch-QueryBuilder支援模糊查詢、多條件組合查詢和自訂時間範圍查詢等多種查詢方式,查詢樣本如下:- 模糊查詢 下圖中表示對email這個條件進行模糊查詢,並要求email模糊比對iga。
最終得到的匹配結果如下。
- 多條件組合查詢 下圖的查詢條件表示index必須為tryme_book,同時要對type 進行過濾。要求type等於大學教輔、數學、對外漢語教學或大學教材。
最終得到的匹配結果如下。
- 自訂時間範圍查詢 當您需要對時間欄位進行篩選時,可使用時間類型的篩選功能。下圖中對utc_time進行時間範圍篩選,查詢
[目前時間-240天,目前時間]範圍內的資料。
最終得到的匹配結果如下。
- 單擊