写这篇文章的初衷是因为所在的新公司在服装业务搜索方面使用的是Solr搜索引擎,业务需要将Solr的Schema增加个业务字段,公司用的又是SolrCloud,而在这之前我都没有用过Solr。网上的资料又大多不全且分散,所以自己自学并记录成笔记,希望能给我以及他人带来一些帮助!!
此文主要是翻译solr官方文档SolrCloud Configuration and Parameters一节
命令行实用工具
1)你需要明白,虽然Solr的管理UI包含专用于SolrCloud群集状态的页面,但它不允许您下载或修改相关的配置文件。
2)./server/scripts/cloud-scrips/zkcli.sh
命令可以将本地文件上传到zookeeper上,Solr也是从zookeeper上读取配置信息的。
zkCli.bat help
可以帮助你了解该命令有哪些使用方式。截取该命令最后输出部分如下(使用示例):
Examples:
zkcli.sh -zkhost localhost:9983 -cmd bootstrap -solrhome /opt/solr
zkcli.sh -zkhost localhost:9983 -cmd upconfig -confdir /opt/solr/collection1/conf -confname myconf
zkcli.sh -zkhost localhost:9983 -cmd downconfig -confdir /opt/solr/collection1/conf -confname myconf
zkcli.sh -zkhost localhost:9983 -cmd linkconfig -collection collection1 -confname myconf
zkcli.sh -zkhost localhost:9983 -cmd makepath /apache/solr
zkcli.sh -zkhost localhost:9983 -cmd put /solr.conf 'conf data'
zkcli.sh -zkhost localhost:9983 -cmd putfile /solr.xml /User/myuser/solr/solr.xml
zkcli.sh -zkhost localhost:9983 -cmd get /solr.xml
zkcli.sh -zkhost localhost:9983 -cmd getfile /solr.xml solr.xml.file
zkcli.sh -zkhost localhost:9983 -cmd clear /solr
zkcli.sh -zkhost localhost:9983 -cmd list
zkcli.sh -zkhost localhost:9983 -cmd ls /solr/live_nodes
zkcli.sh -zkhost localhost:9983 -cmd clusterprop -name urlScheme -val https
zkcli.sh -zkhost localhost:9983 -cmd updateacls /solr
- 上传一个本地文件到zookeeper的新文件(路径)上
zkcli.bat -zkhost 127.0.0.1:2181 -cmd putfile /log4j.properties E:\solr-6.6.0\server\scripts\cloud-scripts\log4j.properties
解释:该命令是在windows下执行的,在linux下执行时将zkcli.bat
换成zkcli.sh
即可。
putfile
后的第一个参数位置表示 zookeeper上的路径,第二个参数位置表示本地的文件路径。
- 上传一个文件夹到zookeeper上
zkcli.bat -zkhost 127.0.0.1:2181 -cmd upconfig -confname my_new_config -confdir E:\solr-6.6.0\server\scripts\cloud-scripts\testConf
E:\solr-6.6.0\server\scripts\cloud-scripts\testConf
下创建一个myConf.txt
文件。
-confname
表示将在zookeeper上创建的配置的名称, -confdir
表示要将本地文件夹内的东西上传到zookeeper上刚的配置名称下。执行命令后效果如图:
执行命令前没有configs目录的,红色方框区域都是执行命令后生成的。