solr6.6.2学习记录之三:从sqlserver数据库导入数据(全量导入)

Posted 素手揽清风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了solr6.6.2学习记录之三:从sqlserver数据库导入数据(全量导入)相关的知识,希望对你有一定的参考价值。

1、配置准备

  前提已经配置好了solr,并新创建了一个core;(我的是:D:\\solr_home\\core_demo)

  sqlserver数据库 ,  以数据库:demo_solr ,单表(demo_user)为例.

2、修改sorlconfig.xml

  sorlconfig.xml 位置: D:\\solr_home\\core_demo\\conf ;

  在 soreconfig.xml 的<requestHandler name="/select" class="solr.SearchHandler">上面添加如下代码:

  注意:需要确认文件中不存在其他的dataimport,如果存在直接替换即可。

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
        <lst name="defaults">
            <str name="config">data-config.xml</str>
        </lst>
</requestHandler>

3、创建data-config.xml文件

  关于详细的配置请参照:http://blog.csdn.net/boolbo/article/details/50352331

    官方wiki:https://cwiki.apache.org/confluence/display/solr/

  在sorlconfig.xml所在目录下创建data-config.xml文件,然后在此文件中配置数据库相关属性。例如:

<?xml version="1.0" encoding="UTF-8"?> 
<dataConfig>
    <dataSource name="dataSource" type="JdbcDataSource"
              driver="net.sourceforge.jtds.jdbc.Driver"
              url="jdbc:jtds:sqlserver://127.0.0.1:1433/demo_solr;useLOBs=false"
              user="sa"
              password="123456" />
    <document>
        <entity name="demo_user" dataSource="dataSource" pk="id"
            query="SELECT * FROM demo_user">
            <field column=\'id\' name=\'id\' />
            <field column=\'name\' name=\'name\' />
            <field column=\'address\' name=\'address\' />
            <field column=\'age\' name=\'age\' />
            <field column=\'create_time\' name=\'createTime\' dateTimeFormat=\'yyyy-MM-dd HH:mm:ss\' />
            <field column=\'update_time\' name=\'updateTime\' dateTimeFormat=\'yyyy-MM-dd HH:mm:ss\' />
        </entity>
    </document>
</dataConfig

4、配置managed-schema.xml

  6.6.2版本直接修改managed-schema.xml就行了,比如我的managed-schema.xml文件所有内容如下:

<?xml version="1.0" encoding="UTF-8" ?>

<schema name="example" version="1.6">
  
   <field name="id" type="string" indexed="true" stored="false"/>
   <field name="name" type="string" indexed="true" stored="true"/>
   <field name="age" type="int" indexed="true" stored="true"/>
   <field name="address" type="string" indexed="true" stored="true"/>
   <field name="createTime" type="date" indexed="true" stored="true"/>
   <field name="cupdateTime" type="date" indexed="true" stored="true"/>
   
   <field name="_version_" type="long" indexed="false" stored="false"/>
   <field name="text" type="string" indexed="true" stored="false" multiValued="true"/>
   <field name="_root_" type="string" indexed="true" stored="false" docValues="false" />


    <uniqueKey>id</uniqueKey>

    <fieldType name="string" class="solr.StrField" sortMissingLast="true" />
    <fieldType name="int" class="solr.TrieIntField" docValues="true" precisionStep="0" positionIncrementGap="0"/>
    <fieldType name="long" class="solr.TrieLongField" docValues="true" precisionStep="0" positionIncrementGap="0"/>
    <fieldType name="date" class="solr.TrieDateField" docValues="true" precisionStep="0" positionIncrementGap="0"/>


</schema>

5、拷贝jar

  (1)拷贝solr-6.6.2\\dist 路径下的 solr-dataimporthandler-6.6.2.jar 、solr-dataimporthandler-extras-6.6.2.jar  到 tomcat下的 webapps\\solr\\WEB-INF\\lib目录下

    (2)拷贝jtds-1.2.4.jar(sqlserver数据库连接jar包)到 tomcat下的 webapps\\solr\\WEB-INF\\lib目录下

不需要修改任何配置文件即可,继续下面的步骤

6、修改jar配置路径

  继续编辑solrconfig.xml, 找到lib标签,修改jar的路径,不需要添加任何jar即可,下面贴上我本地修改后的路径:

  <lib dir="D:\\java\\componets\\solr-6.6.2/contrib/extraction/lib" regex=".*\\.jar" />
  <lib dir="D:\\java\\componets\\solr-6.6.2/dist/" regex="solr-cell-\\d.*\\.jar" />

  <lib dir="D:\\java\\componets\\solr-6.6.2/contrib/clustering/lib/" regex=".*\\.jar" />
  <lib dir="D:\\java\\componets\\solr-6.6.2/dist/" regex="solr-clustering-\\d.*\\.jar" />

  <lib dir="D:\\java\\componets\\solr-6.6.2/contrib/langid/lib/" regex=".*\\.jar" />
  <lib dir="D:\\java\\componets\\solr-6.6.2/dist/" regex="solr-langid-\\d.*\\.jar" />

  <lib dir="D:\\java\\componets\\solr-6.6.2/contrib/ltr/lib/" regex=".*\\.jar" />
  <lib dir="D:\\java\\componets\\solr-6.6.2/dist/" regex="solr-ltr-\\d.*\\.jar" />

  <lib dir="D:\\java\\componets\\solr-6.6.2/contrib/velocity/lib" regex=".*\\.jar" />
  <lib dir="D:\\java\\componets\\solr-6.6.2/dist/" regex="solr-velocity-\\d.*\\.jar" />

7、重启tomcat,访问:http://127.0.0.1:8080/solr/index.html#/core_demo/dataimport//dataimport,如下图:

(full-import 全量导入,delta-import-增量导入),选择 full-import ,点击 点击Execute就可以导入了。

8、点击左侧Query可查询导入的数据,至此完成。

 

 

以上是关于solr6.6.2学习记录之三:从sqlserver数据库导入数据(全量导入)的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL 学习笔记记录整理之三:子查询

学习sqlserve的一些笔记

CAN总线学习记录之三:总线中主动错误和被动错误的通俗解释

一般问题处理记录(SqlServe)

Linux内存从0到1学习笔记(七,用户空间虚拟内存之三 - 内存映射)

八大排序算法之三选择排序—简单选择排序(Simple Selection Sort)