[2]Solr5.4.1配置DIH导入MSSQL数据

这篇文章主要介绍如何将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分钟,索引建立成功之后,后续就可以对索引数据进行查询了















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值