环境:ubuntu18 + springboot2.0 + solr-8.0.0

第一部分 安装solr

先去官网下载solr:Index of /apache/lucene/solr/8.0.0
我这里下载的是zip的包,下载之后unzip命令解压得到下列文件:
clipboard.png

进入bin目录,执行sudo ./solr -start 命令,
这里可能遇到的错误有两个:

  1. 会提示找不到JAVA_HOME,解决方法是在solr中加入 export JAVA_HOME='你的JDK路径'即可;
  2. root启动需要添加-force参数,错误信息如下:

clipboard.png

好吧,再次运行sudo ./solr start -force,运行成功。
clipboard.png

solr的默认端口是8983,打开浏览器输入localhost:8983,可以看到solr已经可以访问了~
clipboard.png

第二部分 创建核心(core),并导入mysql数据

选择左侧CoreAdmin,再选择Add Core,输入核心的名称和实例路径,后边三个默认就好。

clipboard.png

点击Add Core提交信息,这里我遇到了一个错误信息,如下:

clipboard.png

意思是在核心目录下找不到相应的配置文件,解决办法:将下图的conf文件夹cope到新创建的core目录下 /usr/local/solr-8.0.0/server/solr/new_core2

clipboard.png

重新点击Add Core,创建成功~

clipboard.png

接下来导入MySQL中的数据,我们会用到Solr自带的DIH(DataImportHandler)去进行数据导入。
这一步需要导入三个jar包(solr-dataimporthandler-8.0.0.jarolr-dataimporthandler-extras-8.0.0.jarmysql-connector-java-8.0.15.jar),编辑三个文件(db-data-confg.xmlsolrconfig.xml以及managed-schema)。

导入jar包

进入到/usr/local/solr-8.0.0/dist目录,将solr-dataimporthandler-8.0.0.jarsolr-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:

clipboard.png

编辑该文件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刷新,可以看到导入成功的提示:

clipboard.png

至此,数据导入就完毕了!

之后的文章我们会加入中文分词以及如何在springboot项目中使用solr


瓦力
575 声望15 粉丝

一只coder