Solr服务搭建
Solr基于java开发所以需要安装jdk
安装jdk
一. 到oracle官网下载jdk(Linux版)
二. 将jdk转发到cenos系统上,然后解压tar –xzvf 相应的tar.gz包
三. 将解压包拷贝到/usr/java下 cp -r ./jdk1.8.0_161//usr/java
四. 设置环境变量vi /etc/profile 添加
JAVA_HOME=/usr/java/jdk文件夹
JRE_HOME=/usr/java/ jdk文件夹/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
最后让其生效source /etc/profile
安装solr
将solr的压缩包上传至cenos,进行解压
tar –xzvf solr-6.6.2
Bin 目录可以直接启动使用,就是一个示例
Contribute 是一个扩展包
Dist是一个提供的war包可以用来直接部署
Example 中solr可以当做solrhome
Solr与tomcat整合
解压tomcat
创建一个solr工程目录
mkdir /usr/local/solr
cp -r apache-tomcat-8.5.27/usr/local/solr/tomcat
Solr/server/solr-webapp/文件夹下有个webapp文件夹,复制到tomcat\webapps\目录下,文件夹名改成solr
cp -r webapp/ /usr/local/solr/tomcat/webapps/
solr/server/lib/ext 中的 jar 全部复制到 Tomcat/ webapps/solr/WEB-INF/lib目录中
cp -r ext/*/usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/
solr/server/lib/metrics* 开头的jar全部复制到 Tomcat\ webapps\solr\WEB-INF\lib目录中
cp ./metrics* /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/
在Tomcat/webapps/solr/WEB-INF/下建立classes目录,并将solr/server/resources/log4j.properties文件复制其中
cp log4j.properties/usr/local/solr/tomcat/webapps/solr/WEB-INF/classes/
复制solr/server/solr/*所有文件到solrhome目录(自己创建),用到创建solr的core时使用
cp -r solr /usr/local/solr/solrhome
在solrhome下创建一个collection1
mkdir collection1
solrhome/configsets/sample_techproducts_configs文件夹下的conf 目录拷贝到刚刚建立的collection1的文件夹下
cp -rconf/ /usr/local/solr/solrhome/collection1/
修改tomcat/webapps/solr/WEB-INF/web.xml
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/usr/local/solr/solrhome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
注释掉配置访问权限
<!--
<security-constraint>
<web-resource-collection>
<web-resource-name>Disable TRACE</web-resource-name>
<url-pattern>/</url-pattern>
<http-method>TRACE</http-method>
</web-resource-collection>
<auth-constraint/>
</security-constraint>
<security-constraint>
-->
开启tomcat 可以访问solr
添加实例
添加中文分词器,由于IK中文分词器没有更新,与新版本不兼容所以使用自带的中文分词器
cdsolr-6.6.2/contrib/analysis-extras/lucene-libs
复制lucene-analyzers-smartcn-6.6.2.jar该文件到 Tomcat下的 solr web应用中的lib目录下
sudocp -r lucene-analyzers-smartcn-6.6.2.jar/usr/local/solr/tomcat/webapps/solr/WEB-INF/lib
修改collection1/conf/managed-schema
<fieldType name="solr_cnAnalyzer" class="solr.TextField"positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
</analyzer>
<analyzer type="query">
7 <tokenizerclass="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
</analyzer>
</fieldType>
Solr集群搭建
创建目录
mkdir/usr/local/solr-cloud
解压zookeeper
tar -xzvfzookeeper-3.4.11.tar.gz
复制三份到/usr/local/solr-cloud
cp -r zookeeper-3.4.11/usr/local/solr-cloud/zookeeper01
cp -r zookeeper-3.4.11 /usr/local/solr-cloud/zookeeper02
cp -r zookeeper-3.4.11/usr/local/solr-cloud/zookeeper03
在每个zookeeper文件下创建data文件夹
mkdir data
每个data下创建myid文件
touchmyid
vi myid
1代表编号
修改每个zookeeper文件下, zoo_sample.cfg文件改名为zoo.cfg
修改dataDir(绝对路径),clientport ,添加server
启动zookeeper:./zkServer.sh start
关闭:./zkServer.shstop
查看状态:./zkServer.shstatus
可使用shell编程
cd zookeeper01/bin
./zkServer.sh start
cd ../../
cd zookeeper02/bin
./zkServer.sh start
cd ../../
cd zookeeper03/bin
./zkServer.sh start
cd ../../
开启成功
复制之前配置好的tomcat到solr-cloud目录下(复制四份)
然后修改tomcat端口号
然后将之前配置好的solrhome拷贝到solr-cloud目录下(四份)
然后修改solrcloud配置
vi solrhome02/solr.xml
修改tomcat/webapps/solr/WEB-INF/web.xml
修改tomcat/bin/catalina.sh添加IP地址和zookeeper客户端端口号
JAVA_OPTS="-DzkHost=192.168.254.135:2181,192.168.254.135:2182,192.168.254.135:2183"
上传solrhome配置文件到zookeeper(上传一份即可),需要用到solr-6.6.2中上传工具
执行zkcli.sh
./zkcli.sh -zkhost192.168.254.135:2181,192.168.254.135:2182,192.168.254.135:2183 -cmd upconfig-confdir /usr/local/solr-cloud/solrhome01/collection1/conf -confname myconf
验证是否上传成功,到zookeeper下(任意一个),进入bin目录,执行
这就是成功!!!!
启动tomcat