2014-1-3_solr学习之(十一)solr3.5的DIH的增量索引和数据的条件导入
Solr在企业中的应用,多半是从数据库导入数据。而从数据库导入数据,最好的工具莫过于DataImportHandler,DIH的用法非常灵活,效率也很高。关于DIH的基础配置,可以参考http://sbp810050504.blog.51cto.com/2799422/1182942
在DIH中,还有一些好玩的东西,比如:
一、增量索引。
尽管DIH中讲到delta-import可以进行增量索引,但是貌似效率不高(没有去考证)。其实用full-import也可以实现增量索引。
怎么实现呢。我们把目光关注到db-data-config.xml的节点上,在的query属性的值一般是select * from table。
当我们用http://localhost:8983/solr/dataimport?command=full-import来向索引中添加数据时,solr首先会清空索引。
如果我们用URL:
http://localhost:8983/solr/dataimport?command=full-import&clean=false
则不会清空索引。
然后我们在 配置如下
这里唯一不方便的是需要数据库表中有一个update_time的字段。
现在我们把目光关注到dih.last_index_time 。这个东西在哪里呢?我们执行full-import后,在solrconfig.xml相同的目录下会生成一个文件dataimport.properties。在这个文件中记录着dih.last_index_time 的值。
这样就可以用dih进行增量式的索引了,如果我们在linux下写个例行性工作排程,则solr可以定时更新索引。是不是很方便?
二、导入符合条件的数据
好了,如果我们想从数据库中导入特定的数据,比如id=1001,比如update_time在2012到2013年之间的数据。该怎么做呢?
在不修改程序的前提下,solr提供了这样的功能。以导入id=1001的数据为例。
我们可以这样修改的query属性:
页:
[1]