读书人

solr4.1 增量导入 amp; 剔除索引

发布时间: 2013-02-24 17:58:56 作者: rapoo

solr4.1 增量导入 & 删除索引
solr4.1学习的第二篇笔记。

废话不多说 贴代码。

打开 之前的 data-config。xml

<?xml version="1.0" encoding="UTF-8" ?><dataConfig><dataSource type="JdbcDataSource" driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@IP:1521:db01" user="root" password="root" /><document><entity name="solrtest" pk="ID" query="select ID,USER_NAME,USER_PASS,USER_TYPE,USER_ROLE from T_USER" deltaImportQuery="select ID,USER_NAME,USER_PASS,USER_TYPE,USER_ROLE from T_USER where ID = '${dataimporter.delta.ID}'" deltaQuery="select ID from T_USER where UPDATE_TIME > to_date('${dataimporter.last_index_time}','yyyy-mm-dd hh24:mi:ss')"><field column="ID" name="id"/><field column="USER_NAME" name="username"/><field column="USER_PASS" name="userpass"/><field column="USER_TYPE" name="usertype"/><field column="USER_ROLE" name="userrole"/></entity>  </document></dataConfig>


这里 增加了 deltaImportQuery deltaQuery

这里的增量 用到了时间。。也就是说solr 会把数据库对应数据修改后,也要记录次数据的修改时间,他会根据时间对比去做增量,所以 表结构一定要有时间。

删除索引 其实有3种方法,



    curl http://localhost:8080/solr/update --data-binary "<delete><query>title:abc</query></delete>" -H 'Content-type:text/xml; charset=utf-8'            #删除完后,要提交            curl http://localhost:8080/solr/update --data-binary "<commit/>" -H 'Content-type:text/xml; charset=utf-8' 





    java -Ddata=args  -jar post.jar "<delete><id>42</id></delete>"            #怎么使用 post.jar 查看帮助            java -jar post.jar -help  



三 URL
http://localhost:9080/solr/update/?stream.body=%3Cdelete%3E%3Cid%3E14%3C/id%3E%3C/delete%3E&stream.contentType=text/xml;charset=utf-8&commit=true


四 就是通过设置一个表用来存放删除的数据ID,然后通过在 XML中配置
deletedpkquery 进行

读书人网 >编程

热点推荐