Linux下Solr单机版、集群版安装与配置

时间:2021-10-13 10:31:54

一、安装

1、需要的安装包有apache-tomcat-7.0.47.tar.gz、solr-4.10.3.tgz.tgz(jdk自行安装)

这里默认大家已经安装好jdk与tomcat,所以在这里不做说明,jdk安装点击这里,tomcat直接解使用。

2、解压solr的安装包,把tar -zxvf solr-4.10.3.tgz.tgz解压

[root@localhost local]# tar -zxvf solr-4.10.3.tgz.tgz

3、进入solr-4.10.3/dist下把solr-4.10.3.war复制到tomcat的webapps下面,并改名为solr.war

[root@localhost dist]# cp solr-4.10.3.war /usr/local/tomcat/webapps/solr.war

4、启动tomcat , war包自动解压,再把tomcat停止,删除solr.war包

进入/usr/local/tomcat/bin启动tomcat
[root@localhost bin]# ./startup.sh 停止tomcat
[root@localhost bin]# ./shutdown.sh 进入/usr/local/tomcat/webapps
删除solr.war包
[root@localhost webapps]# rm -rf solr.war

5、把刚刚解压的solr目录下/usr/local/solr-4.10.3/example/lib/ext  ext文件夹里面的所以jar复制到tomcat里面solr工程的WEB-INF/lib/下面

[root@localhost ext]# cp * /usr/local/tomcat/webapps/solr/WEB-INF/lib/

6、创建solrhome文件夹。

该文件夹用来存放solr服务器所有配置文件。

将solr-4.10.3/example中的solr文件夹复制至/usr/local/ 下面,并改名solrhome

[root@localhost example]# cp -r  solr /usr/local/solrhome

7、在tomcat里面solr工程中的web.xml文件中指定solrhome的位置  要进入/usr/local/tomcat/webapps/solr/WEB-INF下才有web.xml文件

<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/usr/local/solrhome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>

一开始这里是注释掉的,所以我们要去掉注释

Linux下Solr单机版、集群版安装与配置

8、保存退出。启动tomcat

9、在浏览器地址栏输入http://192.168.25.101:8080/solr   就可以看到页面了,说明安装成功。

Linux下Solr单机版、集群版安装与配置

二、配置中文分析器   IK Analyzer

1、把IK Analyzer 2012FF_hf1文件夹上传到linux下。

Linux下Solr单机版、集群版安装与配置

2、IKAnalyzer2012FF_u1.jar 添加到tomcat下webapp中solr 工程的WEB-INF/ lib 目录下

[root@localhost IK Analyzer 2012FF_hf1]# cp IKAnalyzer2012FF_u1.jar /usr/local/tomcat/webapps/solr/WEB-INF/lib/

3、在tomcat下webapp中solr 工程的WEB-INF/下创建classes文件夹  把扩展词典、停用词词典、配置文件放到 solr 工程的 WEB-INF/classes 目录下。

Linux下Solr单机版、集群版安装与配置

[root@localhost IK Analyzer 2012FF_hf1]# mkdir /usr/local/tomcat/webapps/solr/WEB-INF/classes
[root@localhost IK Analyzer 2012FF_hf1]# cp ext_stopword.dic IKAnalyzer.cfg.xml mydict.dic  /usr/local/tomcat/webapps/solr/WEB-INF/classes/

4、在solrhome/collection1/conf/schema.xml中配置filedType,可直接在后面添加

[root@localhost solrhome]# vim solr/collection1/conf/schema.xml
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>

Linux下Solr单机版、集群版安装与配置

5、配置域

在solrhome/collection1/conf/schema.xml中配置,根据业务需要选择相应的字段对应solr的字段

<field name="item_goodsid" type="long" indexed="true" stored="true"/>
<field name="item_title" type="text_ik" indexed="true" stored="true"/>
<field name="item_price" type="double" indexed="true" stored="true"/>
<field name="item_image" type="string" indexed="false" stored="true" />
<field name="item_category" type="string" indexed="true" stored="true" />
<field name="item_seller" type="text_ik" indexed="true" stored="true" />
<field name="item_brand" type="string" indexed="true" stored="true" />

Linux下Solr单机版、集群版安装与配置

6、复制域

复制域的作用在于将某一个Field中的数据复制到另一个域中

<field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="item_title" dest="item_keywords"/>
<copyField source="item_category" dest="item_keywords"/>
<copyField source="item_seller" dest="item_keywords"/>
<copyField source="item_brand" dest="item_keywords"/> 

Linux下Solr单机版、集群版安装与配置

7、动态域

当我们需要动态扩充字段时,我们需要使用动态域。

对于一些商城项目规格的值是不确定的,所以我们需要使用动态域来实现。需要实现的效果如下:

Linux下Solr单机版、集群版安装与配置

配置:

<dynamicField name="item_spec_*" type="string" indexed="true" stored="true" />    

Linux下Solr单机版、集群版安装与配置

8、保存退出,重启tomcat