Solr提供了full-import和delta-import两种导入方式,这篇文章主要讲解后者。
所谓delta-import主要是对于数据库(也可能是文件等等)中增加或者被修改的字段进行导入。主要原理是利用率每次我们进行import的时候在solr.home\conf下面生成的dataimport.properties文件,此文件里面有最近一次导入的相关信息。这个文件如下:
1. #Wed Apr 21 16:48:27 CST 2010
2. last_index_time=2010-04-21 16\:48\:24
3. id.last_index_time=2010-04-21 16\:48\:24
其实last_index_time是最近一次索引(full-import或者delta-import)的时间。
通过比较这个时间和我们数据库表中的timestamp列即可得出哪些是之后修改或者添加的。
可通过http://<host>:<port>/solr/dataimport查看
下面是操作步骤:
1. 配置好请求处理器。(这个见我的上一篇文章)
2. 修改data-config.xml如下:
4. <dataConfig>
5. <dataSource type="JdbcDataSource"
6. driver="com.mysql.jdbc.Driver"
7. url="jdbc:mysql://localhost:3306/workshop"
8. user="root"
9. password="123"
10. batchSize="100"
11. autoCommit="false" />
12. <document>
13. <entity name="id"
14. query="SELECT id,`user`,title,content,`timestamp`,`text` FROM article"
15. deltaImportQuery="SELECT id,`user`,title,content,`timestamp`,`text` FROM article where id='${dataimporter.delta.id}'"
16. deltaQuery="select id from article where `timestamp` > '${dataimporter.last_index_time}'">
17. </entity>
18. </document>
19. </dataConfig>
注意entity标签的参数:
l deltaImportQuery
仅适用于delta-import的参数。DIH会检查数据库中的最后修改时间是否与我们
这个示例为了尽可能简单,没有使用多表。数据库对应表结构如下:
id Integer increment
user varchar(45)
title varchar(45)
content varchar(2000)
timestamp datatime
text varchar(2000)
3. 最后我们请求:
http://<host>:<port>/solr/dataimport?command=delta-import 即可完成delta import
相关参数如下:
n entity
entity是document下面的标签(data-config.xml)。使用这个参数可以有选择的执行一个或多个entity 。使用多个entity参数可以使得多个entity同时运行。如果不选择此参数那么所有的都会被运行。
n clean
选择是否要在索引开始构建之前删除之前的索引,默认为true
n commit
选择是否在索引完成之后提交。默认为true
n optimize
是否在索引完成之后对索引进行优化。默认为true
n debug
是否以调试模式运行,适用于交互式开发(interactive development mode)之中。
请注意,如果以调试模式运行,那么默认不会自动提交,请加参数“commit=true”
分享到:
相关推荐
solr-import-export-json最新代码solr-import-export-json最新代码solr-import-export-json最新代码solr-import-export-json最新代码solr-import-export-json最新代码solr-import-export-json最新代码solr-import-...
solr定时索引使用到的定时调度器jar包, 可使用于solr7.x版本
solr-data-import-scheduler-1.1.2,用于solr定时更新索引的jar包,下载后引入到solr本身的dist下面,或者你tomcat项目下面的lib下面
solr 增量更新所需要的包 solr-dataimporthandler-6.5.1 + solr-dataimporthandler-extras-6.5.1 + solr-data-import-scheduler-1.1.2
经过测试可以适用solr7.4版本。如果低版本solr(6.*) 可以直接适用网上的solr-dataimport-scheduler 1.1 或者1.0版本。
兼容solr6.5.1 定时任务依赖jar包
这是我自己反编译fix后,支持solr7.4高版本的定时增量任务(亲测solr7.4),下载下来开箱即用。低版本的没试过,估计低版本的solr配合之前apache-solr-dataimportscheduler-1.0.jar这些能行,不行就试试我这个。
兼容最新的solr6.1,tomcat启动不会报错
solr-mongo-importer-1.1.0.jar solr-mongo-importer-1.1.0.jar solr-mongo-importer-1.1.0.jar
兼容最新的solr6.1,tomcat启动不会报错。
使用solr做数据库定时同步更新数据和索引时用到该jar,经过本人测试通过,放心使用. 支持solr5.x,solr6.x
这是属于Solr7.X版本的全量、增量更新jar包,有很多版本的这个jar包是没有更新过的,因为这个jar包是爱好者开发的,并不是官方维护,所以很难找到,我是用了两天才找到。
solr定时增量jar, 通过配置信息,连接数据库,实现定时任务同步数据库数据到搜索引擎中。
solr(solr-9.0.0-src.tgz)源码
Solr Data Import Hander Scheduler 说明:Solr...使用说明将 apache-solr-dataimportscheduler-1.0.jar 和solr自带的 apache-solr-dataimporthandler-.jar, apache-solr-dataimporthandler-extras-.jar 放到solr.war的l
Solr的基础知识,笔者翻阅了很多网上的资料,自认为比较全面,涉及到Solr的安装使用与SolrJ的开发。
solr6 solr-dataimporthandler-scheduler-1.1源码,可以自己编译适应不同版本solr
solr-mongo-import-1.0和1.1
solr增量更新-