Notice:本說明基於Solr6.4.2。
本文討論的是如何使用Solr Admin UI。
一級菜單
圖1.SolrCloud模式
圖2.單機Solr模式
Logging:展示Solr的日志,不用去后台查日志,並且還可以用來配置打印日志級別。
Cloud:僅在SolrCloud模式下顯示,本文中的例子使用的是單機模式,故暫不作介紹。
CoreAdmin:支持SolrCore的基本操作。(點此查看什么是SolrCore)
Java Properties:Java相關屬性和配置。
Thread Dump:查看每個線程的詳細信息,以及狀態信息。
CoreSelector:可以選擇並操作已存在的SolrCore。
*界面沒有提供創建Solr數據集,如果你剛接觸Solr,還沒創建好數據集(Collection或者Core),請通過傳送門進入QuickStart學習,歡迎一會兒再回來。
Solr自身提供了一個Web入口給Solr管理員和開發者,供大家查看配置詳情,查詢,分析索引字段以便對Solr的配置進行微調等等。
Web地址默認在http://hostname:8983/solr
在頁面的最左邊,Solr的Logo下面提供了一個導航,其中的一級菜單在上一節已經提到。和單機Solr不同的是,在SolrCloud模式下,多了一個Collection的下拉框。
點擊下拉框列表中的Core和Collections,可以進入二級菜單,如Schema Browser,Plugins & Statistics,Dataimport,Query,Config Files等。
在頁面中間的是選中的菜單所包含的內容,內容中可能包含文字,圖形,按鈕,下拉框,子導航。Solr Admin界面上的所有功能,都復用了Solr對外提供的HTTP接口。(即所有功能都有對應的HTTP接口可以訪問,界面只是一種簡化的調用api的方式。)
在頁面的右下角,我們可以獲得更多配置和使用Solr的幫助。
鏈接 | 描述 |
Documentation | https://lucene.apache.org/solr/ 官網的Solr文檔。 |
Issue Tracker | https://issues.apache.org/jira/browse/SOLR Solr的開源問題單。 |
IRC Channel | 一個Solr網上聊天室http://webchat.freenode.net/?channels=#solr,需要先連接美國的VPN。怎么在里面聊天可以看這個:https://wiki.apache.org/solr/IRCChannels 感覺不是特別有用。 |
Community forum | https://wiki.apache.org/solr/UsingMailingLists 告訴你怎么用郵件聯系社區。 |
Solr Query Syntax | https://cwiki.apache.org/confluence/display/solr/Query+Syntax+and+Parsing 介紹基本的Solr查詢符號和語法。 |
下圖是IRC Channel登錄后顯示的界面,Welcome to the freenode Internet Relay Chat。
二級菜單
通過 Core Selector選擇一個Core之后,會進入一個二級菜單。(如果使用SolrCloud模式,則還有一個Collection的下拉框)。
Overview:顯示一些統計信息和元數據。
Analysis:幫你設計你的Analyzer,Tokenizer和Filter。
Dataimport: 展示當前的DataimportHandler的狀態,默認是沒有。
Documents: 提供了一個讓你對該Core中的數據作增刪改操作的表單窗口。
Files: 不是指存在Core中的業務數據,而是指該Core的配置文件,比如solrconfig.xml。
Query: 一個簡單的結構化查詢工具。具體見(Solr頁面查詢各個參數解釋)
Ping: 按一下可以看這個Core還是不是活着的以及響應時間。
Plugins: Solr自帶的一些插件以及我們安裝的插件的信息以及統計。
Replication:顯示你當前Core的副本,並提供disable/enable功能。
Schema: 展示該Core的shema數據,如果是用ManagedSchema模式,還可以通過該頁面修改,增加,刪除schema的字段。(對比Solr4,是一個比較實用的提升。)
Segments info:展示底層Lucence的分段信息。
Ping
點擊Ping按鈕相當於發送一個請求到對應的Core並獲得答復。對應的http API是 /admin/ping (http://localhost:8983/solr/<core-name>/admin/ping),后端的處理邏輯是PingRequestHandler類,
(類介紹:http://lucene.apache.org/solr/6_4_0/solr-core/org/apache/solr/handler/PingRequestHandler.html)。
返回值:
<response> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">13</int> <lst name="params"> <str name="q">{!lucene}*:*</str> <str name="distrib">false</str> <str name="df">_text_</str> <str name="rows">10</str> <str name="echoParams">all</str> </lst> </lst> <str name="status">OK</str> </response>
OK表示core是好core。
如果需要在java代碼中自定義solr的健康檢查,可以用ping方法。
//在SlorJ中調用ping的例子 SolrPing ping = new SolrPing(); ping.getParams().add("distrib", "true"); //To make it a distributed request against a collection rsp = ping.process(solrClient, collectionName); int status = rsp.getStatus();
Plugins&Stats
Plugins頁面展示的是在Core下運行的各種插件的統計數據和狀態信息。比如,可以找到Solr Cache的性能統計數據,Solr Searcher的狀態,Request Handler和Search Component的配置信息等等。
Watch Changes:刷新數據,高亮顯示改變了的數據。
Refresh Values:刷新並加載最新的數據。
Replication
為Master-slave的副本工作方式提供了一個管理和查看副本的頁面,SolrCloud中已經取代了這個頁面上的大部分功能,單機版也無需關注該功能。
(如果使用的是SolrCloud,不要使用該頁面上的DisableReplication功能。)
Segments Info
展示底層Lucence索引段,包括每個段的大小(字節大小和數據條數)以及其他的一些基本元數據信息,最顯眼的是deleted documents數量,把鼠標移動到段上可以看到更多的數據信息。
這些信息可以幫管理員做性能優化,優化該數據集的合並段的設置。
(如果你已經到了開始為自己的性能擔憂的階段了,請參見https://cwiki.apache.org/confluence/display/solr/IndexConfig+in+SolrConfig#IndexConfiginSolrConfig-MergingIndexSegments)
上圖中淺灰色表示active,深灰色表示removed。
這個界面是在Solr5.1提出來要做的,可以參見開源問題單(https://issues.apache.org/jira/browse/SOLR-6841)
問題單中是這么描述該功能的意義的:"We find it useful to tune merge policy not blindly but looking on segment size and fill ratio."
意思是說,他們發現通過查看segment的大小和填充率來調整Merge策略比瞎調要好。
Analysis
在Analysis中,可以通過下拉框選擇一個Fieldname/FieldType,你在文本框中輸入一個會填入到該字段/類型的值,然后分析這個內容在索引和查詢的時候會被怎么處理。
這個頁面可以幫助你設計Analyzer,Tokenizer和Filter。
例子:當使用的FieldType是text_en時,Running is a sport會被處理成run sport 。
Dataimport
如果你要使用它,首先,你要有一個DataImportHandler(DIH,用來導入結構化數據,可參考https://wiki.apache.org/solr/DataImportHandler)。
Documents
提供了一個可以更新Document的接口,有如下幾種更新方式。