您的位置:首页 > 数据库

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

2017-05-19 16:50 459 查看

1.导入jar包

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

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


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

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中必须有一个updatetime的timestamp类型的字段,并且设置它为自更新,default设置为CURRENT_TIMESTAMP,这样每次修改某条数据时他的updatetime时间会自动更新。

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

 




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

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  solr 数据库