环境:ubuntu18
+ springboot2.0
+ solr-8.0.0
第一部分 安装 solr
先去官网下载 solr:Index of /apache/lucene/solr/8.0.0
我这里下载的是 zip 的包,下载之后 unzip 命令解压得到下列文件:
进入 bin 目录,执行 sudo ./solr -start
命令,
这里可能遇到的错误有两个:
- 会提示找不到 JAVA_HOME,解决方法是在 solr 中加入
export JAVA_HOME='你的 JDK 路径'
即可; - root 启动需要添加
-force 参数
,错误信息如下:
好吧,再次运行sudo ./solr start -force
,运行成功。
solr 的默认端口是8983
,打开浏览器输入localhost:8983
,可以看到 solr 已经可以访问了~
第二部分 创建核心(core),并导入 mysql 数据
选择左侧CoreAdmin
,再选择Add Core
,输入核心的名称和实例路径,后边三个默认就好。
点击 Add Core 提交信息,这里我遇到了一个错误信息,如下:
意思是在核心目录下找不到相应的配置文件,解决办法:将下图的 conf 文件夹 cope 到新创建的 core 目录下 /usr/local/solr-8.0.0/server/solr/new_core2
。
重新点击 Add Core,创建成功~
接下来导入 MySQL 中的数据,我们会用到 Solr 自带的 DIH(DataImportHandler)去进行数据导入。
这一步需要导入三个 jar 包 (solr-dataimporthandler-8.0.0.jar
、olr-dataimporthandler-extras-8.0.0.jar
和mysql-connector-java-8.0.15.jar
),编辑三个文件 (db-data-confg.xml
、solrconfig.xml
以及managed-schema
)。
导入 jar 包
进入到 /usr/local/solr-8.0.0/dist
目录,将 solr-dataimporthandler-8.0.0.jar
和solr-dataimporthandler-extras-8.0.0.jar
复制到/usr/local/solr-8.0.0/server/solr-webapp/webapp/WEB-INF/lib
,再去 mvn 仓库下载一个 mysql-connector-java 的包,也复制到这里。
编辑配置文件
- 首先需要我们进入到
/usr/local/solr-8.0.0/example/example-DIH/solr/db/conf
目录,拷贝db-data-config.xml
到我们刚才复制的 conf 文件夹内/usr/local/solr-8.0.0/server/solr/new_core2/conf
,可以随意修改一个文件名,也可以用他默认的,如下,我改成了mysql-db.xml
:
编辑该文件 vim mysql-db.xml
,将原本的内容修改成我们自己的需求:
修改 dateSource:
<dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/dbname" user="root" password="" />
加入 entity:
- 接着退出,编辑另一个文件
solrconfig.xml
,添加如下信息:
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">mysql-db.xml</str>
</lst>
</requestHandler>
mysql-db.xml
就是刚才 copy 的 db-data-config.xml
的文件名。
- 保存退出,编辑
managed-schema
,加入
<!-- custom fields-->
<field name="title" type="string" indexed="true" stored="true"/>
<field name="content" type="string" indexed="true" stored="true"/>
<field name="labels" type="string" indexed="true" stored="true"/>
保存 –> 退出 –> 重启 solr,sudo ./solr restart -force
再次打开 localhost:8983
管理页面,选择新创建的核心 –> 选择 DateImport
–> 选择 full-import
全量导入 –> 提交 –> 点击 Refresh 刷新,可以看到导入成功的提示:
至此,数据导入就完毕了!
之后的文章我们会加入中文分词以及如何在 springboot 项目中使用 solr