ElasticSearch7 如何删除单个文档

1. 编写目的

由于ElasticSearch7和以前的版本有所不同,所以在使用新版本时,也需要去官网查看新的文档,找到对应的解决方法。这里是介绍es7.2如何删除单个文档。
es7版本其他简单操作,比如添加文档,删除索引,模糊搜索,多条件搜索等可以参考【elastic search7 java开发简单教程】https://blog.csdn.net/smileyan9/article/details/94474914

2. 具体过程

  1. 引入依赖包和建立连接等内容请参考【elastic search7 java开发简单教程】
  2. 具体代码如下:
    /**
     * 根据id进行文档删除
     * @param id
     * @return
     * @throws IOException
     */
    public static String deleteById(String id) throws IOException {
        // 建立连接,获得RestHighLevelClient对象,getRestHighLevelClient方法
        // 请参考https://blog.csdn.net/smileyan9/article/details/94474914
        RestHighLevelClient client = getRestHighLevelClient();
       // 创建DeleteRequest对象,用于删除
        DeleteRequest deleteRequest = new DeleteRequest(ElasticSearchUtil.ES_NAME);
        // 配置对应的条件,即id
        deleteRequest.id(id);
        // 进行删除操作,如果希望知道删除是否成功
        DeleteResponse delete = client.delete(deleteRequest, RequestOptions.DEFAULT);
        // Smileyan
        System.out.println(delete.getResult());
        return delete.getResult()+"";
    }
    
  • 如果删除成功的话,则会返回"DELETE";
  • 如果id不存在,则会返回"NOT_FOUND"
  • 等等

重要补充: 多(单)条件删除
CSDN有人联系我说如何加条件进行删除,如果有遇到什么问题,欢迎交流,我们一起解决。代码如下:

/**
 * 根据条件匹配删除
 * @param mustMap
 * @return
*/
public static long delete(Map<String,Object> mustMap,int size) throws IOException {
    DeleteByQueryRequest request =
            new DeleteByQueryRequest(ElasticSearchUtil.ES_NAME);
    // 根据多个条件 生成 boolQueryBuilder
    BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();

    for (Map.Entry<String, Object> entry : mustMap.entrySet()) {
        boolQueryBuilder
                .must(QueryBuilders.matchQuery(entry.getKey(), entry.getValue()));
    }
    request.setQuery(boolQueryBuilder);
    request.setSize(size);
    RestHighLevelClient client = getRestHighLevelClient();
    DeleteRequest deleteRequest = new DeleteRequest(ElasticSearchUtil.ES_NAME);
    BulkByScrollResponse bulkResponse =
            client.deleteByQuery(request, RequestOptions.DEFAULT);

    return bulkResponse.getDeleted();
}

【相应的官网文档地址】:https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-high-document-delete.html

3. 总结

新版本es将那些基本操作封装得很好,但是官网提供的文档不够详细。所以遇到问题是很正常的,但是经过一番折腾,解决了各种问题也是很不错的。

如果遇到什么问题,欢迎留言评论。

Smileyan
2019年7月21日

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

smile-yan

感谢您的支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值