solr4.1 增量导入 & 剔除索引
solr4.1 增量导入 & 删除索引
solr4.1学习的第二篇笔记。
废话不多说 贴代码。
打开 之前的 data-config。xml
这里 增加了 deltaImportQuery deltaQuery
这里的增量 用到了时间。。也就是说solr 会把数据库对应数据修改后,也要记录次数据的修改时间,他会根据时间对比去做增量,所以 表结构一定要有时间。
删除索引 其实有3种方法,
一
二
三 URL
四 就是通过设置一个表用来存放删除的数据ID,然后通过在 XML中配置
deletedpkquery 进行
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 进行