其他分享
首页 > 其他分享> > spring中按照莫属性值批量删除Elasticsearch索引中的文档

spring中按照莫属性值批量删除Elasticsearch索引中的文档

作者:互联网

spring中按照莫属性值批量删除Elasticsearch中的文档

介绍:
Elasticsearch整合springboot项目后,可以从java代码中创建索引,创建文档
也可以删除文档.
进行按照某一属性值批量删除文档:

演示,根据商品spuId删除对应的库存
在这里插入图片描述
演示删除这两条文档

索引在java中是有映射类的,在创建索引的时候就写好了,例如SkuInfo
在这里插入图片描述
编写dao层,在dao接口中自定义一个查询方法,方法只要按照es接口的规范书写,会自动生成实现.

public interface ESdao extends ElasticsearchRepository<SkuInfo,Long> {
    /**
     * 自定义查询方法,从索引库查询文档,按照spuid属性查找
     * @param spuId 商品id
     * @return
     */
    List<SkuInfo> querySkuInfoBySpuId(String spuId);
}

方法调用:
先查询出集合,遍历集合,使用dao自带的delete方法删除
也可以使用deleteAll方法删除,我使用了λ表达式

 @Autowired
    private ESdao eSdao;
  @Override
    public void deleteDataToEs(String spuId) {
        List<SkuInfo> skuInfos = eSdao.querySkuInfoBySpuId(spuId);
        /*for (SkuInfo skuInfo : skuInfos) {
            eSdao.delete(skuInfo);
        }
        eSdao.deleteAll(new Iterable<SkuInfo>() {
            @Override
            public Iterator<SkuInfo> iterator() {
                return skuInfos.iterator();
            }
        });*/
        eSdao.deleteAll(()->skuInfos.iterator());
    }

测试运行
在这里插入图片描述已经查询不到了,成功从索引库中删除了这两条数据
在这里插入图片描述

标签:删除,spuId,spring,索引,文档,eSdao,Elasticsearch,skuInfos
来源: https://blog.csdn.net/qq_42687144/article/details/106729657