一、安裝插件
要刪除某個索引的一個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
