Solr7.1.0 安装部署(centos7)

Solr7.1.0为目前的最新版,安装环境需要jdk1.8 或者更高,容器我用的tomcat,也建议tomcat8.0或者更高

1、下载solr7.1.0与tomcat8,JDK没有安装的话,可以百度下

mkdir -p /mnt/tools
cd /mnt/tools
wget http://archive.apache.org/dist/lucene/solr/7.1.0/solr-7.1.0.zip
wget http://mirrors.shuosc.org/apache/tomcat/tomcat-8/v8.5.24/bin/apache-tomcat-8.5.24.tar.gz


2、新建目录存放solr与tomcat

mkdir -p /opt/solr7
cd /opt/solr7
解压第一步中下载的源文件
tar -zxvf /mnt/tools/apache-tomcat-8.5.24.tar.gz
mv /mnt/tools/apache-tomcat-8.5.24 tomcat_solr
unzip -oq solr-7.1.0.zip -d /opt/solr7

新建solr配置存放目录:mkdir solr_home
完成之后如下图:
这里写图片描述


3、将运行solr7所需的文件以及jar复制到tomcat中

cd /opt/solr7/tomcat_solr/webapps/
将不需要项目的都删掉
rm -rf *
mkdir solr
cd solr

接下来复制solr运行需要的文件
cp -r /opt/solr7/solr7.1.0/server/solr-webapp/webapp/* .
cp -r /opt/solr7/solr7.1.0/server/lib/ext/* WEB-INF/lib/
cp -r /opt/solr7/solr7.1.0/server/lib/metrics*.* WEB-INF/lib/
cp -r /opt/solr7/solr7.1.0/dist/solr-dataimporthandler-* WEB-INF/lib/

日志配置:
mkdir -p WEB-INF/classes
cp /opt/solr7/solr7.1.0/server/resources/log4j.properties WEB-INF/classes/

指定solr的配置目录,修改两点,放开env-entry,注释掉security-constraint
vim WEB-INF/web.xml,修改后的如下:
这里写图片描述
这里写图片描述

接下来配置solr运行的配置
cd /opt/solr7/solr_home/
cp -r /opt/solr7/solr7.1.0/server/solr/* .
cp -r /opt/solr7/solr7.1.0/contrib/ .
cp -r /opt/solr7/solr7.1.0/dist/ .


4、修改tomcat端口,并启动,这块不多说,启动之后在浏览器输入:http://ip:port/solr/index.html,可看到管理页面,如下:

这里写图片描述


5、新建Core,solr存放的字段和索引都需要自定义,这里core就是存放这些自定义东西的地方。网上有些说要在管理界面add,其实不用,直接在手动配置就行。

cd /opt/solr7/solr_home/
mkdir -p spc_core/conf/
cd spc_core/conf/
cp -r /opt/solr7/solr7.1.0/server/solr/configsets/_default/conf/* .

修改jar的相对目录:
vim solrconfig.xml
这里写图片描述

返回上一级:cd ..
新建data目录,mkdir data
新建core.properties文件:vim core.properties ,内容如下:
name=spc_core
config=conf/solrconfig.xml
schema=conf/schema.xml
dataDir=data
这里写图片描述

6、重启tomcat,再访问首页,就可以选择我们新建的core了,后面再建core,可以直接复制这一份改改。

这里写图片描述

7、添加中文分词器,我用的IK,以此为例

下载IK分词器包。
链接:http://pan.baidu.com/s/1i4D0fZJ 密码:bcen
下载解压之后,两个jar包复制到WEB_INF/lib/目录
这里写图片描述

修改/opt/solr7/solr_home/spc_core/conf目录下的managed-schema
vim managed-schema,自定义IK的fieldType,再将需要分词的field指定IK分词器

<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index" useSmart="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
<analyzer type="query" useSmart="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>

这里写图片描述

重启tomcat,我们来对比下IK分词器与默认text分词器之间的区别
默认分词器:
这里写图片描述
IK分词器:
这里写图片描述
可以看到,IK分词还挺准的,默认分词器完全不能区分中文~~


8、项目中,通过solrj来操作solr,具体的百度上很多,需要注意的是,新版的solrj通过下边的方式来new 对象,其他的方式是老版本用的:

这里写图片描述

添加依赖,pom.xml中加入:
这里写图片描述
这里写图片描述

具体的业务代码因为在项目中,就不贴了~网上基本都有

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐