`
Java_大猫
  • 浏览: 170502 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

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 进行
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics