springboot 使用 Spring Data Elasticsearch 添加文档、删除文档、简单查询文档 作者:马育民 • 2021-09-19 23:33 • 阅读:10282 上接:[springboot 使用 Spring Data Elasticsearch 操作 Elasticsearch 7.9-创建工程](https://www.malaoshi.top/show_1IX1tKpTSEXs.html "springboot 使用 Spring Data Elasticsearch 操作 Elasticsearch 7.9-创建工程") # 文档操作 ### service类 ``` package day1.service; import day1.dao.ToutiaoDao; import day1.entity.Toutiao; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Sort; import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; @Service public class ESToutiaoDocSrvImpl { @Resource private ToutiaoDao toutiaoDao; @Resource private ElasticsearchRestTemplate template; /** * 新增 */ public void save(Toutiao toutiao){ // 方法一 //toutiaoDao.save(toutiao); // 方法二 template.save(toutiao); } /** * 修改和新增是同一个接口,但是,要传入 id */ public void update(Toutiao toutiao){ save(toutiao); } //根据 id 查询 public Toutiao findById(String id){ // 方法一 //Toutiao toutiao = toutiaoDao.findById(id).get(); // 方法二 Toutiao toutiao=template.get(id,Toutiao.class); return toutiao; } //删除 public void delete(String id){ // 方法一 // Toutiao toutiao = new Toutiao(); // toutiao.setId(id); // toutiaoDao.delete(toutiao); // 方法二 //toutiaoDao.deleteById(id); // 方法三 template.delete(id, Toutiao.class);// 返回id } //批量新增 public void saveAll(List list){ // 方法一 //toutiaoDao.saveAll(list); // 方法二 template.save(list); } /** * 分页查询 * @param currentPage 当前页,第一页从 0 开始,1 表示第二页 * @param pageSize 每页显示多少条 * @return */ public Page findPage(int currentPage, int pageSize){ //设置排序(排序方式,正序还是倒序,排序的 id) Sort sort = Sort.by(Sort.Direction.DESC,"date"); //设置查询分页 PageRequest pageRequest = PageRequest.of(currentPage, pageSize,sort); //分页查询 Page page = toutiaoDao.findAll(pageRequest); return page; } /** * 查询所有数据 * 注意:由于数据较多,可能引发崩溃,使用较少 * @return */ public Iterable findAll(){ Iterable it = toutiaoDao.findAll(); return it; } } ``` ### springboot 测试类 ``` package test; import day1.Main; import day1.entity.Toutiao; import day1.service.ESToutiaoDocSrvImpl; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.domain.Page; import org.springframework.test.context.junit4.SpringRunner; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; @RunWith(SpringRunner.class) @SpringBootTest(classes = Main.class) public class TestESToutiaoDocSrvImpl { @Autowired private ESToutiaoDocSrvImpl service; /** * 新增 */ @Test public void save(){ Toutiao toutiao = new Toutiao(); toutiao.setId("123"); toutiao.setTitle("华为手机"); toutiao.setContent("华为手机就是好"); toutiao.setType("手机"); toutiao.setAuthor("路人甲"); toutiao.setLike(50); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); String date=sdf.format(new Date()); toutiao.setDate(date); service.save(toutiao); System.out.println("保存成功!"); } //修改和新增是同一个接口,区分的依据就是 id @Test public void update(){ Toutiao toutiao = new Toutiao(); toutiao.setId("123"); toutiao.setTitle("华为手机 mate 100"); toutiao.setContent("华为手机好,very good"); toutiao.setAuthor("路人甲"); toutiao.setLike(50); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); String date=sdf.format(new Date()); toutiao.setDate(date); service.update(toutiao); } //根据 id 查询 @Test public void findById(){ Toutiao toutiao = service.findById("123"); System.out.println(toutiao); } @Test public void findAll(){ Iterable it = service.findAll(); for (Toutiao item : it) { System.out.println(item); } } //删除 @Test public void delete(){ service.delete("123"); } //批量新增 @Test public void saveAll(){ List list = new ArrayList<>(); for (int i = 0; i < 10; i++) { Toutiao product = new Toutiao(); product.setTitle("["+i+"]小米手机"); list.add(product); System.out.println(product); } service.saveAll(list); } //分页查询 @Test public void findByPageable(){ //分页查询 // Page page = service.findPage(0, 5); Page page = service.findPage(1, 5); for (Toutiao item : page.getContent()) { System.out.println(item); } } } ``` 原文出处:http://malaoshi.top/show_1IX1tOSzUNlM.html