.Net程序员 Solr-5.3之旅 (三)Solr 从MSSQ导入索引数据

引言

Other men live to eat, while I eat to live.----苏格拉底 sql

别人活着为了享受吃,而我吃是为了活着。数据库

咱们活着不能只是为了吃,嘿嘿,有时候咱们还得写点代码=。=|| apache

准备工做

1.sqljdbc4.jar 我用的SqlServer2008tomcat

Microsoft JDBC Driver 4.0 for SQL Server 支持如下操做系统:app

Linux、Unix、Windows Server 200八、webapp

Windows Vista Service Pack 一、Windows Server 2008 R2 和 Windows 7。sqlserver

2.将solr-5.3.1\dist目录下的 solr-dataimporthandler-5.3.1.jar复制到apache-tomcat\webapps\solr\WEB-INF\lib目录下学习

3.将下载的sqljdbc4.jar放到apache-tomcat\webapps\solr\WEB-INF\lib目录下优化

4.在Solr5中默认dataImport功能是禁用的,须要在D:\solr_home\FixValue\conf\solrconfig.xml中追加配置

data-config.xml表明的是当前路径用于数据导入的配置文件,我上篇文章有说到将Example中的配置文件复制过来,里面就包含这个文件

目录在solr-5.3.1\example\example-DIH\solr\solr\conf\data-config.xml

data-config.xml

接下来咱们导入数据的关键配置就在 solr-data-config.xmlschema.xml这两个文件里面

1.solr-data-config.xml 个人配置是:

若是你英文还能够,能够到https://wiki.apache.org/solr/去查找你须要的资料

这里咱们用到的是https://wiki.apache.org/solr/DataImportHandler#Configuration_in_data-config.xml

对于solr-data-config.xml的配置,里面都有详细说明,下面我抓几个重要部分说一下:

dataSource数据库连接。

entity.dataSource咱们要使用的连接配置名称。

entity.query用于第一次将全部数据所有导入到Solr中。

entity.deltaQuery用于查找有更改的数据。

entity.deltaImportQuery将deltaQuery中超找到的数据同步到Solr中,就是对Solr中已经存在的索引数据进行增长和修改。

entity.deletedPkQuery 这里我没有配置到,具体怎么使用有待研究。

field.column 对应数据库中的字段名称

field.name 对应solr中存储的索引字段名称,区分大小写,后面咱们在使用query查询时用到

通常在导入索引数据时都要带上一个惟一的标识字段,用于solr对索引的增删改查

schema.xml

官方参考文献(英语):https://wiki.apache.org/solr/SchemaXml

咱们拷贝过来的schema.xml文件中有一些示例数据,咱们先清除掉第一行name="_version_"到<uniqueKey>id</uniqueKey>之间的全部行

而后加入咱们对FixValue表的字段定义

name="_version_"是属于每一个Schema文件中必须包含的字段,记录索引版本的字段。

field.required标识这个字段是必须字段,若是在之后的更新和同步中这个字段值为Null则不会被同步到索引中。

field.type标识这个字段是什么数据类型,是在Schema文件中fieldType节点中配置,须要分词可使用text_general,可是text_general相对于中文来讲很弱,只能一元分词,后面我会开篇介绍如何加入自定义的分词器IKanalyzer。

<uniqueKey>id</uniqueKey>是标识哪一个字段是主键

导入数据

至此咱们已经配置好了相关的配置,能够进入Solr的Web管理页面导入数据了。http://localhost:9080/manager点击Reload

而后进入管理页面打开FixValue的Dataimport页面

须要引发注意的是这里的command参数,它有两个选项

full-import:全量导入,它会覆盖原有的索引

delta-import:即增量导入,它会在原有索引的基础上追加

下面的几个多选框含义解释以下:

verbose:这个选项设为true的话,会打印导入的一些中间过程的详细信息,有利于调试以及了解内部操做细节

clean:表示是否在导入数据建立索引以前先清空掉原有的索引

commit:表示是否当即提交索引

optimize:表示是否优化索引

debug: 表示是否开启调试模式

若是在导入的时候出现问题,能够去Logging查看错误日志:

执行导入成功以后,咱们能够去Query界面查看咱们导入的数据:

结尾

至此咱们的数据已经成功的导入到了Solr中,那接下咱们怎么自动将MSSQ中数据的实时更改同步到Solr中呢?下一篇咱们继续学习

附件下载

solr从MssQ导入数据相关配置.rar

相关文章
相关标签/搜索