Solr概述
Solr是基于Apache Lucene的独立的企业级应用搜索服务器。提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面。
Solr常见的业务操作流程如下:
- 更新默认配置集文件,上传给ZooKeeper。
Solr需要指定配置集创建Collection,配置集主要有两个配置文件:一个是“solrconfig.xml”(主要定义Solr的处理程序和一些扩展程序);另一个是“managed-schema”(主要定义索引的字段和字段类型)。用户可以首先获取Solr的默认的配置集confWithSchema,对其配置集文件进行修改后上传。
具体的操作命令可参考Shell客户端操作命令。
- 创建Collection。
在Shell客户端操作命令、Solr Admin的页面操作、Linux下的curl命令、浏览器URL下的Rest消息、Hue对接Solr章节都有创建Collection的方法,建议参考Shell客户端操作命令。
- 查询Collection的状态。
登录Manager,选择 ,确认Solr的实例全部正常工作。
单击Solr WebUI的“SolrServerAdmin”(两个任选一个)进入Solr Admin页面。
在Solr Admin页面,选择
即可查看Collection的状态。 - 导入数据,创建索引。
- Solr over HBase:Solr索引HBase上的数据,请参考Solr over HBase。
- Solr over HDFS:Solr索引HDFS上的数据,请参考Solr over HDFS。
- Solrj:通过客户端开发创建索引。
- 查询索引数据。
查询索引数据操作,参考Solr Admin的页面操作。
- 删除索引数据。
在Shell客户端操作命令、Solr Admin的页面操作、Linux下的curl命令、浏览器URL下的Rest消息章节都有删除索引数据的方法,建议参考Shell客户端操作命令。
- 删除Collection。
在Shell客户端操作命令、Solr Admin的页面操作、Linux下的curl命令、浏览器URL下的Rest消息、Hue对接Solr章节都有删除Collection的方法。建议参考Shell客户端操作命令。
- 建议Solr中Solr Core总数不超过4万个。Solr Core总数较多时,如果需要重启Solr服务,建议分批次重启SolrServer实例,减少对Zookeeper的压力。
- 在创建Collection时,要确保Solr服务的所有实例正常,否则可能会造成部分Shard创建失败,从而导致整个Collection创建失败。
- 在删除Collection时,要确保Solr服务的所有实例状态正常,否则会造成数据删除不干净,重启服务后Solr的界面上会显示出现垃圾数据。因操作不当导致垃圾数据产生时,记住这些垃圾数据的Core的名称,从后台进入到存放垃圾数据的Core目录,将有垃圾数据的Core名称的文件夹删除后,重启Solr服务即可。实例正常后,也可以再次删除对应的Collection名称,清除遗留数据。
- 在安全模式下,需要注意登录的用户是否有对相应的Collection操作的权限,没有对该Collection的读写权限,无法对该Collection进行操作。
- Solr内部采用的是UTC零时区,如果在客户端创建的Core和Collection时区与Solr内部处理的时区不一致,在Solr Admin的页面显示Core的启动时间会有一定时差,对业务没有影响。
- 对于已创建的collection都会占用内存资源,当存在Solr实例的内存使用超过jvm设置的-Xmx值的90%时,Solr集群会给出内存超阈值使用告警。