zoukankan      html  css  js  c++  java
  • .Net程序员 Solr-5.3之旅 (三)Solr 从MSSQ导入索引数据

    引言

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

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

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

    准备工作

    1.sqljdbc4.jar 我用的SqlServer2008

    Microsoft JDBC Driver 4.0 for SQL Server 支持以下操作系统:

    Linux、Unix、Windows Server 2008、

    Windows Vista Service Pack 1、Windows Server 2008 R2 和 Windows 7。

    2.将solr-5.3.1dist目录下的 solr-dataimporthandler-5.3.1.jar复制到apache-tomcatwebappssolrWEB-INFlib目录下

    3.将下载的sqljdbc4.jar放到apache-tomcatwebappssolrWEB-INFlib目录下

    4.在Solr5中默认dataImport功能是禁用的,需要在D:solr_homeFixValueconfsolrconfig.xml中追加配置

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

    目录在solr-5.3.1exampleexample-DIHsolrsolrconfdata-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

  • 相关阅读:
    Windows 下安装 swoole 具体步骤
    Mysql 连接提示 Client does not support authentication protocol requested by server 客户端不支持服务器请求的身份验证协议;考虑升级MySQL客户端
    mysql8 安装
    在 apache 配置 python-django
    QQWry.dat导入Mysql显IP程序
    PHP根据身份证号码判断星座性别生肖身份证号15位转18位
    layer---table 处理 方法设定使用 时间戳转换
    数字的处理 :小数点四舍五入
    javascript 检测手机设备 百度siteapp下的一款跳转的产品,使用起来很方便。你可以用这款JS跳转到手机版,也可以跳转到任何你想跳转的位置。
    基于Token的多平台身份认证价格设计
  • 原文地址:https://www.cnblogs.com/FirstCode/p/4997943.html
Copyright © 2011-2022 走看看