解压service安装脚本
命令:1
tar xzf solr-7.5.0.tgz solr-7.5.0/bin/install_solr_service.sh --strip-components=2
安装solr service
命令:1
sudo bash ./install_solr_service.sh solr-7.5.0.tgz -i /home/solr -d /home/solr/solr -u root -s solr -p 8983
- -i 解压solr安装文件夹
- -d 用于保存solr可写文件、配置信息以及log、pidfile的路径
- -p 端口,默认8983
- -s 服务名,默认solr
- -u Solr文件的用户和执行用户,默认solr。如果solr不存在,则会创建
- -n 安装后不要启动solr服务
配置solr.in.sh
- 去除SOLR_JAVA_HOME的#注释,并修改为:
SOLR_JAVA_HOME=”/home/java/jdk1.8.0_191” - 去除SOLR_JAVA_MEM的#注释,根据机器实际情况修改,也可不改默认为:
SOLR_JAVA_MEM=”-Xms512m -Xmx512m”
3.去除 GC_LOG_OPTS=”-verbose:gc -XX:+PrintHeapAtGC -XX:+PrintGCDetails \
-XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime”的#注释 - 去除ZK_HOST前的#号注释并修改为
ZK_HOST=”centeros1:2181,centeros2:2181,centeros3:2181/solr” - 去除SOLR_HOST前#注释修改为
SOLR_HOST=”centeros3”
注意:SOLR_HOST需要配置为每台节点自己的HOST NAME - 去除SOLR_TIMEZONE前#注释修改为SOLR_TIMEZONE=”UTC+8”
- 去除SOLR_OPTS前#注释,修改为:
SOLR_OPTS=”$SOLR_OPTS -Dsolr.directoryFactory=HdfsDirectoryFactory \
-Dsolr.lock.type=hdfs \
-Dsolr.hdfs.confdir=/home/hadoop/hadoop-3.1.1/etc/hadoop \
-Dsolr.hdfs.home=hdfs://hadoop/solr”
Dsolr.hdfs.confdir为hadoop配置文件路径
Dsolr.hdfs.home中的hdfs://hsdoop需要和hadoop配置中的core-site.xml中的fs.defaultFS保持一致 - 去除SOLR_ULIMIT_CHECKS的#号注释修改为SOLR_ULIMIT_CHECKS=false
配置solr.xml
修改各个节点的solr.xml,将
注意:centeros3为各个节点的HOST NAME
配置solrconfig.xml
替换原有的directoryFactory配置1
2
3
4
5
6
7
8
9
10
11
12
13<directoryFactory name="DirectoryFactory" class="solr.HdfsDirectoryFactory">
<str name="solr.hdfs.confdir">/home/hadoop/hadoop-3.1.1/etc/hadoop</str>
<str name="solr.hdfs.home">hdfs://hadoop/solr</str>
<bool name="solr.hdfs.blockcache.enabled">true</bool>
<int name="solr.hdfs.blockcache.slab.count">1</int>
<bool name="solr.hdfs.blockcache.direct.memory.allocation">true</bool>
<int name="solr.hdfs.blockcache.blocksperbank">16384</int>
<bool name="solr.hdfs.blockcache.read.enabled">true</bool>
<bool name="solr.hdfs.blockcache.write.enabled">true</bool>
<bool name="solr.hdfs.nrtcachingdirectory.enable">true</bool>
<int name="solr.hdfs.nrtcachingdirectory.maxmergesizemb">16</int>
<int name="solr.hdfs.nrtcachingdirectory.maxcachedmb">192</int>
</directoryFactory>
替换lockTyp的配置
1 | <lockType>${solr.lock.type:hdfs}</lockType> |
启动solr服务
- 启动命令:/home/solr/solr-7.5.0/bin/solr start –force
- 查看状态:/home/solr/solr-7.5.0/bin/solr status
- 关闭服务:/home/solr/solr-7.5.0/bin/solr stop -force
配置中文分词器
下载jar包、配置扩展字典
- ik-analyzer-solr5-5.x.jar
- solr-analyzer-ik-5.1.0.jar
IK配置文件 IKAnalyzer.cfg.xml、ext.dic、stopword.dic
配置IKAnalyzer.cfg.xml
1 | <?xml version="1.0" encoding="UTF-8"?> |
准备IK中文分词器环境
把IK中文分词器架包复制到solr项目的WEB-INF/lib目录下
把IK分词器相关配置文件复制到solr项目WEB-INF/classes/ 目录下
配置managed-schema
添加IK分词
1 | <fieldType name="text_ik" class="solr.TextField"> |
把需要分词的字段设置为text_ik
1 | <field name="text" type="text_ik" indexed="true" stored="true" multiValued="false" omitNorms="true"/> |
提交配置到ZK
命令:1
2
3
4./zkcli.sh -zkhost centeros1:2181,centeros2:2181,centeros3:2181 -cmd putfile zk地址 本地地址
例:
./zkcli.sh -zkhost centeros1:2181,centeros2:2181,centeros3:2181 -cmd putfile /solr/configs/_default/managed-schema
/home/solr/solr-7.5.0/server/solr/configsets/_default/conf/managed-schema