IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Solr删除数据的两种方式

    李阳发表于 2015-11-09 08:37:12
    love 0

    此处的两种方式是根据<id>删除,第二种是更具查询条件删除<query>。

    首先说第一种删除方法(根据<id>删除),我是登陆在web管理界面,documents功能,然后选择Document Type为xml,执行如下命令:

    <delete><id>627f7ac3-05fc-42f1-a7ed-2b710ede4dd8</id></delete>

    那么优点是删除目标较明确,缺点就是得一条一条的删除,像我今天早晨一次性要删除几万条记录那不得累死。

    第二种删除方法:

    <delete><query>operatetime:2015-11*</query></delete>

    根据查询条件,瞬间就能删除模糊查询下的所有数据,速度快,使用效率较高。

    下面来解释一下这两中删除方法:

    大家可以发现:

    <delete><id>627f7ac3-05fc-42f1-a7ed-2b710ede4dd8</id></delete>

    <id>是什么?这里解释一下<id>就是在 schema.xml 的 uniqueKey 所指字段的值,而不是索引内部的 docId,那么我存的是日志信息,所以我将uuid作为uniqueKey的值(类似主键的作用),第二个就和明确了,<query>查询条件</query>。

    当然也可以在Linux中的Shell下删除,具体命令:

    curl  http://localhost:8080/update --data-binary  "<delete><query>operatetime:2015-11*</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'

    当然也可以使用自带的post.jar来删除,具体命令:

    java -Ddata=args  -jar post.jar  "<delete><id>627f7ac3-05fc-42f1-a7ed-2b710ede4dd8</id></delete>"   
      
    #怎么使用 post.jar 查看帮助   
      
    java -jar post.jar -help

    以上就是删除数据的两种方式了。

    未经允许不得转载:李阳的藏宝阁 » Solr删除数据的两种方式



沪ICP备19023445号-2号
友情链接