solr6.4.2全量与增量导入数据

来源:互联网 发布:淘宝买来的模板怎么装 编辑:程序博客网 时间:2024/06/16 12:52

1.导入jar包

将相应数据导入jar包放入solr项目的WEN-INF目录下的lib文件夹中:

solr-dataimporthandler-6.4.2.jarsolr-dataimporthandler-extras-6.4.2.jar

相关的jar包可以去solr安装包中找到。将数据库的jar包放入tomcatlib目录下:

mysql-connector-java-5.1.39.jar

2.修改配置文件

修改solr项目中solr/solrhome/core1/conf目录下的solrconfig.xml文件:

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

在相应目录下创建solr-data-config.xml文件,有此文件直接修改:

<?xml version="1.0" encoding="UTF-8"?>  <dataConfig>  <dataSource name="source1" type="JdbcDataSource" driver="com.mysql.jdbc.Driver"url="jdbc:mysql://192.168.10.135:3306/solrtest" user="root" password="root" batchSize="-1" ></dataSource>  <document>  <entity name="news" pk="id"  dataSource="source1"           query="select * from  news"              deltaImportQuery="select * from news where id='${dih.delta.id}'"              deltaQuery="select * from news where updatetime> '${dataimporter.last_index_time}'">        <field column="id" name="id"/>  <field column="title" name="title"/>  <field column="author" name="author"/>  <field column="date" name="date"/>  <field column="content" name="content"/>  <field column="url" name="url"/><field column="vip" name="vip"/> </entity></document></dataConfig>


其中last_index_time为每次索引时自动记录的时间。

3.建立数据库导入索引

数据库建立的数据表news中必须有一个updatetimetimestamp类型的字段,并且设置它为自更新,default设置为CURRENT_TIMESTAMP,这样每次修改某条数据时他的updatetime时间会自动更新。

              全量更新索引(full-import)                                    增量更新索引(delta-import

 

增量索引时去掉clean选项防止把原有数据清空,这样后面增加数据或者修改数据只需要进行增量更新就可以了。

 

原创粉丝点击