码迷,mamicode.com
首页 > 编程语言 > 详细

Elasticsearch Java Api--DeleteByQuery

时间:2016-10-15 16:48:45      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:

一、安装插件

要删除某个索引的一个type下的所有文档,相当于关系型数据库中的清空表操作。查阅了一些资料可以通过Delete-by-Query插件删除,首先使用插件管理器安装Delete-by-Query插件:

sudo bin/plugin install delete-by-query

离线方式与head类似,解压放置elasticsearch/plugins/下即可。

集群有多个节点的情况下,每个节点都需要安装并重启.
如果想要移除插件,可以执行以下命令:

sudo bin/plugin remove delete-by-query

二、导入jar包

导包:elasticsearch-2.3.3/plugins/delete-by-query/delete-by-query-2.3.3.jar加到工程路径中.

三、修改client的创建方式

Client client = TransportClient.builder()
                .settings(settings)
                .addPlugin(DeleteByQueryPlugin.class)
                .build()
                .addTransportAddress(new InetSocketTransportAddress(
                                    InetAddress.getByName("192.168.0.224"), 9300));

加了addPlugin这一行.

四、删除一个type下的所有文档

删除blog/article下的所有文档:

1.命令行方式

CURL -XDELETE "http://192.168.0.224:9200/blog/article/_query" -d {
"query": {
    "match_all": {}
  }
}

2.java api

import org.elasticsearch.action.deletebyquery.DeleteByQueryAction;
import org.elasticsearch.action.deletebyquery.DeleteByQueryRequestBuilder;
import org.elasticsearch.action.deletebyquery.DeleteByQueryResponse;
import org.elasticsearch.plugin.deletebyquery.DeleteByQueryPlugin;

String deletebyquery = "{\"query\": {\"match_all\": {}}}";

DeleteByQueryResponse response =  new DeleteByQueryRequestBuilder(client,   
                                  DeleteByQueryAction.INSTANCE)
                                  .setIndices("blog")
                                  .setTypes("article")
                                  .setSource(deletebyquery)
                                  .execute()
                                  .actionGet();

 

 

from:http://blog.csdn.net/napoay/article/details/52038619

Elasticsearch Java Api--DeleteByQuery

标签:

原文地址:http://www.cnblogs.com/jiu0821/p/5964610.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!