这篇文章主要介绍如何将MSSQL的数据导入到Solr中,使用的数据库版本为MSSQL 2012,Solr的安装请看另一篇文章
1. 首先创建一个Core
1.1 在solr_home下创建一个Core文件夹,名字自定义,我这里叫Test_Core
1.2将Solr安装目录下的conf文件夹复制到solr_home目录下,如图
1.3 在Solr页面上,根据命名的Core文件夹,创建相应的Core
操作到这里,Core已经创建完成了,下面进行相应配置文件的配置
2. Solr导入数据前的准备
2.1 配置solr-data-config.xml文件,文件位于刚才复制的conf文件夹下
打开文件,可以看到数据库的连接配置,如图:
将圈起的部分改成如下:
<dataSource>标签内放置的是数据库连接信息,根据自身情况进行设置即可
<entity>标签的query部分填写查询语句,查询的范围是你要创建索引的数据
<entity>标签的deltaImportQuery部分填写的查询语句,查询的是后续增量更新索引的范围,通常以最后索引时间为判断依据,对更新时间大于最后索引时间的记录进行增量更新
<entity>标签的deltaQuery部分填写的查询语句,查询的是增量更新数据的主键id
<entity>标签的name填写的是自定义名字,pk填写的是主键名
<fileld>部分,colum对应查出数据的列名,name对应配置文件配置的列名(下面会讲到的schema.xml)
2.2 配置IK Analyzer 中文分词器
下载IK分词器的jar包,将其复制到Tomcat\webapps\solr\WEB-INF\lib 目录下,需要下载Solr5.4.1版本可以用的jar包才可以,网上找的很多都是旧版的,无法兼容新版Solr
把IKAnalyzer.cfg.xml、stopword.dic拷贝到相应目录下,详细见图
修改core的schema.xml,在末尾处添加一段如下配置
<!-- IKAnalyzer 中文分词器配置 -->
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
<analyzer type="query" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
2.3 配置schema.xml文件,文件位于conf目录下
打开文件,可以看到许多xml数据,找到如下部分,
这里的数据都是默认的数据,将不要的节点信息删掉,增加后续自己需要导入的节点信息,图中圈起的部分是主键,需要设置required="true" 和 multiValued="false"
对于其他的数据字段,如果在查询条件中有用到该字段,则设置indexed="true",否则设为false
如果返回内容中有用到该字段的话,则设置stored="true" ,否则设为false
另外注意,需要将默认的>copyField>标签数据删除干净,不然后续读取配置的时候可能会出错
3. 配置完文件之后,还需要导入数据库连接需要使用的jdbc包,下载地址:https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11774
解压后,将相应的jar包复制到Tomcat\webapps\solr\WEB-INF\lib 目录下
4. 配置完成之后,重启Tomcat服务器,打开solr页面
4.1 进入数据导入页面,选择全量更新后,点击执行按钮,solr会自动对数据库数据建立索引,根据数据量大小不同
4.2 建立索引成功之后,界面如下,可以看到更新了28W的数据,耗时大约18分钟,索引建立成功之后,后续就可以对索引数据进行查询了