1、项目初衷
Solr版本升级迭代速度较快,各个版本之间变化差异较大。搜集了不少资料终于搭建了solr当前比较新版本的流程,在此分享一下。
希望可以帮助到大家!
2、Solr版本之间的主要变化
版本 | 变化 |
---|---|
4.x | 4.x的安装方式,solr的安装包中会有一个war包,可以部署类似tomcat的服务器上运行,这是大家都熟知的方式 |
5.x 6.x 7.x 8.x | 5.x之后solr中不再提供war包,这是一个重大变化,项目直接在解压后的目录中通过命令运行 |
我在这里踩了不少坑,下载solr8.4解压后就是找不到war包,查了半天资料才发现solr新版本已经不提供war包了。
3、项目环境
java:Jdk1.8
solr:solr-8.4.1
linux:Centos7
分词器:IK分词器
4、Solr安装
4.1、安装Jdk
之前写的帖子中有详细关于jdk环境部署的教程 : https://blog.csdn.net/jrgdspuwij/article/details/104239983
4.2、下载Solr安装包
下载地址 : https://archive.apache.org/dist/lucene/solr/
我下载的是solr-8.4.1.tgz 版本。
4.3、上传solr安装包
cd /opt #打开上传文件夹
rz #上传文件
tar -zxvf solr-8.4.1.tar #解压
cd solr-8.4.1 #进入加压后目录
4.4、测试启动Solr
cd bin #打开bin文件夹
./solr start -force #启动solr
看到截图中内容说明项目已经启动,项目默认启动是8983端口
测试登录网址:http://192.168.1.243:8983/solr 检查是否启动成功(ip按照实际部署环境ip填入)
看到以上截图说明Solr已经启动成功。(打开建议使用google浏览器chrome,页面存在浏览器兼容性问题有的浏览器打开后,左侧按钮点击后没有反应)
4.5、Solr查看服务状态命令
cd /opt/solr-8.4.1/bin #进入solr的bin文件夹下
./solr status #查看solr的启动状态
4.6、Solr关闭服务命令
cd /opt/solr-8.4.1/bin #进入solr的bin文件夹下
./solr stop #查看solr的启动状态
4.7、Solr重启服务命令
cd /opt/solr-8.4.1/bin #进入solr的bin文件夹下
./solr restart -force #查看solr的启动状态
4.7、引入IK分词器
4.7.1 打开solr网页,创建core
登录http://ip:port/solr网址中,创建core_admin
创建:dev_core
点击Add Core 会提示报错,原因是没有找到对应的目录以及目录中应该有的配置文件
解决办法:
cd /opt/solr-8.4.1/server/solr #打开solr对应路径,会发现dev_core文件夹已经被创建
需要将实际应有配置文件拷贝到该目录下,可从/opt/solr-8.4.1/example/example-DIH/solr/db 中复制conf文件夹过去。
拷贝之后截图
此时在回到网页上,点击add_core,提示成功创建。
4.7.2 引入IK分词器所需要的jar包
下载地址 : 链接:https://pan.baidu.com/s/1-QNVeNCK1UQPnqMRyjwn-Q 提取码:mg1r
按照截图内容中标注进行拷贝。
4.7.3 修改配置文件引入IK分词器
cd /opt/solr-8.4.1/server/solr/dev_core/conf #进入配置文件目录
vim managed-schema #修改配置文件
在managed-schema底部增加如下内容
<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>
4.7.4 修改后重启solr服务
./solr restart #重启服务
4.7.5 测试IK分词器
测试可看到,可以选择到新增加的text_ik这个类型,也可以分词成功。
4.8 mysql数据与solr同步在这里插入代码片
4.8.1 导入相关jar包
放入数据库连接jar包,我的数据库是mysql的所有放入mysql-connector-java-5.1.46.jar
cd /opt/solr-8.4.1/server/solr-webapp/webapp/WEB-INF/lib #在这个位置放入jar包
4.8.2 修改solr连接数据库配置文件
db-data-config.xml和managed-schema中进行配置
cd /opt/solr-8.4.1/server/solr/dev_core/conf #进入路径中
vim db-data-config.xml #修改连接数据库配置文件
<dataConfig>
<dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/myschool?charactorEncoding=utf-8" user="root" password="root" />
<document>
<entity name="item" query="select * from student" pk="id">
<field column="id" name="id" />
<field column="stuname" name="stuname" />
<field column="password" name="password"/>
</entity>
</document>
</dataConfig>
DataSource:数据库连接信息
Entity:对应数据库的数据表
Field:数据库字段,对应于solr的schema.xml中的 field 字段。其中 column 表示数据库字段名,name 表示 field 的 name。
4.8.3 登录solr页面,进行数据同步