zoukankan      html  css  js  c++  java
  • Solr 删除数据的几种方式

    原文出处:http://blog.chenlb.com/2010/03/solr-delete-data.html

    有时候需要删除 Solr 中的数据(特别是不重做索引的系统中,在重做索引期间)。删除一些 Solr 无效数据(或不合格数据)。

    删除 solr 中的数据有几种方式:

    1、先来看 curl 方式:

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

    2、用自带的 post.jar,在 apache-solr-XXX\example\exampledocs 目录下:

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

    3、直接用 url,使用 stream 相关参数:

    比如:

    http://localhost:8080/solr/update/?stream.body=<delete><id>123</id></delete>&stream.contentType=text/xml;charset=utf-8&commit=true

    stream 相关参数还有:stream.file=(服务器本地文件),stream.url 分别指到你的删除文本,这里是直接字符串内容用 stream.body 参数。commit 参数是指提交,提交了才能看到删除效果。

    小结:其实,方式1、2原理一样,直接 POST xml 数据过去。方式3就是直接可以告诉服务器从那些地方取删除的 xml 内容。

    删除指令有两种,一是:用 <id></id> 包装;二是:<query></query> 包装。指令都很明显,一个是 id 值(是在 schema.xml 的 uniqueKey 所指字段的值,而不是索引内部的 docId);query 值是查询串,如:title:"solr lucene"。

  • 相关阅读:
    课后作业-阅读任务-阅读提问-4
    团队-象棋游戏-开发文档
    团队-象棋游戏-模块测试过程
    团队编程项目作业3-模块开发过程
    团队-象棋游戏-项目进度
    团队编程总结
    团队编程项目作业,维护
    个人编程总结2
    阅读笔记4
    课后提问4
  • 原文地址:https://www.cnblogs.com/wycg1984/p/1690271.html
Copyright © 2011-2022 走看看