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的接口,有如下几种更新方式。