Elasticsearch java API之删除操作

1.创建client

Settings settings = Settings.builder().put("cluster.name", "my_cluster").build();
TransportClient client = new PreBuiltTransportClient(settings)
                .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("127.0.0.10"), 9300));

2.通过ID删除

DeleteResponse dResponse = client.prepareDelete("my_index", "my_type","1").execute().actionGet();

3.通过IDS,批量删除

public String batchDelete(String[] ids) {
        // bulk批量操作
        BulkRequestBuilder bulk = client.prepareBulk();
        // 删除请求
        DeleteRequestBuilder delete = null;
        for (String id : ids) {
            delete = client.prepareDelete("my_index", "my_type", id);
            // 加入bulk批量操作
            bulk.add(delete);
        }
        try {
            // 请求过来即刷新
            //BulkResponse response = bulk.setRefreshPolicy(WriteRequest.RefreshPolicy.WAIT_UNTIL).get()
            // 执行
            BulkResponse response = bulk.get();
            return response.status().name();
        } catch (Exception e) {
            throw new IStarwayException("删除失败");
        }
}

4.按条件删除,例按name条件删除

    public void delete(String name) throws Exception {
        // match 查询
        QueryBuilder build = QueryBuilders.matchQuery("name", name)
        // 删除
        BulkByScrollResponse delete = DeleteByQueryAction.INSTANCE
            .newRequestBuilder(client)
            .source("my_index")
            .filter(build)
            .get();
        long count = delete.getDeleted();		
    }

5.删除type下的所有数据

public long deleteType() {
        // 查询整个type
        QueryBuilder builder = QueryBuilders.typeQuery("my_type");
        // 删除整个type的数据
        BulkByScrollResponse response = DeleteByQueryAction.INSTANCE
                .newRequestBuilder(client)
                .source("my_index")
                .filter(builder)
                .get();
        return response.getStatus().getDeleted();
}

6.删除索引

    public boolean deleteIndex() {
        // 删除整个索引
        DeleteIndexResponse response = client.admin().indices()
                .delete(new DeleteIndexRequest("my_index"))
                .actionGet();
        return response.isAcknowledged();
    }

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值