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