首页 > 代码库 > Elasticsearch Java Api--DeleteByQuery
Elasticsearch Java Api--DeleteByQuery
一、安装插件
要删除某个索引的一个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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。