Elasticsearch具備強大的分析器API,可用於檢查和分析你的搜索查詢,然而,響應是一個很是大的JSON blob,很難手工分析。html
X-Pack包含Search Profiler工具,能夠將此JSON輸出轉換爲易於導航的可視化,使你可以更快地診斷和調試性能較差的查詢。ios
在Kibana中自動啓用搜索概要分析器,它位於Kibana的Dev Tools選項卡下。瀏覽器
要開始分析查詢:elasticsearch
http://localhost:5601/
。將默認的match_all
查詢替換爲你要分析的查詢,而後單擊Profile。
Search Profiler顯示搜索的索引的名稱,每一個索引中的分片以及查詢所花費的時間,如下示例顯示了對match_all
查詢進行概要分析的結果,搜索了三個索引:.monitoring-kibana-2-2016.11.30
,.monitoring-data-2
和test
。編輯器
若是咱們仔細查看測試索引的信息,咱們能夠從累積時間看到查詢花了0.132ms來執行,在索引中的五個碎片中(DWZD0iosQNeJMTvb4q1JDw
0到5),碎片3是最慢的(0.053ms),其次是碎片2(0.038ms),碎片按時間降序排序。ide
Cumulative Time指標是各個分片時間的總和,它不必定是查詢返回的實際時間(掛鐘時間),因爲可能在多個節點上並行處理分片,所以掛鐘時間可能遠遠小於累積時間,可是,若是碎片在同一節點上並置並串行執行,則掛鐘時間更接近累積時間。雖然Cumulative Time指標對於比較索引和碎片的性能頗有用,但它並不必定表明實際的物理查詢時間。工具
在此示例中,在碎片上運行了一個「MatchAllDocsQuery」
,因爲它是惟一的查詢運行,所以它佔用了100%的時間,當你將鼠標懸停在一行上時,「搜索概要分析器」會顯示有關查詢組件的其餘信息。性能
該面板顯示了低級Lucene方法的時序細分,有關更多信息,請參閱時序細分的參考文檔。測試
要了解查詢樹在搜索概要分析器中的顯示方式,讓咱們看一個更復雜的查詢。ui
索引如下數據:
POST test/test/_bulk {"index":{}} {"name":"aaron","age":23,"hair":"brown"} {"index":{}} {"name":"sue","age":19,"hair":"red"} {"index":{}} {"name":"sally","age":19,"hair":"blonde"} {"index":{}} {"name":"george","age":19,"hair":"blonde"} {"index":{}} {"name":"fred","age":69,"hair":"blonde"}
_all
的輸入框),這會將分析查詢限制爲test
索引。