赞
踩
介绍:
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()); }
测试运行
已经查询不到了,成功从索引库中删除了这两条数据
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。