网站建设项目概要设计方案,宣传软文案例,app开发流程 网站开发,电商网站的支付接入该怎么做呢Elasticsearch集成Spring Boot 概述 Spring Data Elasticsearch 介绍一、环境初始化二、实战入门1、定义数据实体类2、定义Dao层3、框架集成-SpringData-集成测试-索引操作4、框架集成-SpringData-集成测试-文档操作5、框架集成-SpringData-集成测试-文档搜索 概述 Spring Data… Elasticsearch集成Spring Boot 概述 Spring Data Elasticsearch 介绍一、环境初始化二、实战入门1、定义数据实体类2、定义Dao层3、框架集成-SpringData-集成测试-索引操作4、框架集成-SpringData-集成测试-文档操作5、框架集成-SpringData-集成测试-文档搜索  概述 Spring Data Elasticsearch 介绍 Spring Data Elasticsearch基于Spring Data API简化 Elasticsearch 操作将原始操作Elasticsearch 的客户端API进行封装。Spring Data为Elasticsearch 项目提供集成搜索引擎。Spring Data Elasticsearch POJO的关键功能区域为中心的模型与Elastichsearch交互文档和轻松地编写一个存储索引库数据访问层简单的来说是类似于Mybatis-Plus操作。 一、环境初始化 
1、引入依赖 !-- elasticsearch--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-elasticsearch/artifactId/dependency2、增加配置文件配置 
# es搜索elasticsearch:uris: http://localhost:9200#设置有用户和密码可以取消注释
#   username: root
#   password: 1234二、实战入门 
1、定义数据实体类 
Data
NoArgsConstructor
AllArgsConstructor
ToString
/**
indexName :索引库名称
shards集群片相关
*/
Document(indexName  shopping, shards  3, replicas  1)
public class Product {//必须有 id,这里的 id 是全局唯一的标识等同于 es 中的_idIdprivate Long id;//商品唯一标识/*** type : 字段数据类型* analyzer : 分词器类型* index : 是否索引(默认:true)* Keyword : 短语,不进行分词*/Field(type  FieldType.Text, analyzer  ik_max_word)private String title;//商品名称Field(type  FieldType.Keyword)private String category;//分类名称Field(type  FieldType.Double)private Double price;//商品价格Field(type  FieldType.Keyword, index  false)private String images;//图片地址
}2、定义Dao层 
/*** 题目 ES 操作** author a hrefhttps://github.com/xuyuan-upward许苑向上/a*/
public interface ProductDao extends ElasticsearchRepositoryProduct , Long {ListProduct  findByUserId(Long userId);
}3、框架集成-SpringData-集成测试-索引操作 
RunWith(SpringRunner.class)
SpringBootTest
public class SpringDataESIndexTest {//注入 ElasticsearchRestTemplateAutowiredprivate ElasticsearchRestTemplate elasticsearchRestTemplate;//创建索引并增加映射配置Testpublic void createIndex(){//创建索引系统初始化会自动创建索引System.out.println(创建索引);}Testpublic void deleteIndex(){//创建索引系统初始化会自动创建索引boolean flg  elasticsearchRestTemplate.deleteIndex(Product.class);System.out.println(删除索引    flg);}
}4、框架集成-SpringData-集成测试-文档操作 
RunWith(SpringRunner.class)
SpringBootTest
public class SpringDataESProductDaoTest {Autowiredprivate ProductDao productDao;/*** 新增*/Testpublic void save(){Product product  new Product();product.setId(2L);product.setTitle(华为手机);product.setCategory(手机);product.setPrice(2999.0);product.setImages(http://www.atguigu/hw.jpg);productDao.save(product);}//POSTMAN, GET http://localhost:9200/product/_doc/2//修改Testpublic void update(){Product product  new Product();product.setId(2L);product.setTitle(小米 2 手机);product.setCategory(手机);product.setPrice(9999.0);product.setImages(http://www.atguigu/xm.jpg);productDao.save(product);}//POSTMAN, GET http://localhost:9200/product/_doc/2//根据 id 查询Testpublic void findById(){Product product  productDao.findById(2L).get();System.out.println(product);}Testpublic void findAll(){IterableProduct products  productDao.findAll();for (Product product : products) {System.out.println(product);}}//删除Testpublic void delete(){Product product  new Product();product.setId(2L);productDao.delete(product);}//POSTMAN, GET http://localhost:9200/product/_doc/2//批量新增Testpublic void saveAll(){ListProduct productList  new ArrayList();for (int i  0; i  10; i) {Product product  new Product();product.setId(Long.valueOf(i));product.setTitle([i]小米手机);product.setCategory(手机);product.setPrice(1999.0  i);product.setImages(http://www.atguigu/xm.jpg);productList.add(product);}productDao.saveAll(productList);}//分页查询Testpublic void findByPageable(){//设置排序(排序方式正序还是倒序排序的 id)Sort sort  Sort.by(Sort.Direction.DESC,id);int currentPage0;//当前页第一页从 0 开始 1 表示第二页int pageSize  5;//每页显示多少条//设置查询分页PageRequest pageRequest  PageRequest.of(currentPage, pageSize,sort);//分页查询PageProduct productPage  productDao.findAll(pageRequest);for (Product Product : productPage.getContent()) {System.out.println(Product);}}
}5、框架集成-SpringData-集成测试-文档搜索 
RunWith(SpringRunner.class)
SpringBootTest
public class SpringDataESSearchTest {Autowiredprivate ProductDao productDao;/*** term 查询* search(termQueryBuilder) 调用搜索方法参数查询构建器对象*/Testpublic void termQuery(){TermQueryBuilder termQueryBuilder  QueryBuilders.termQuery(title, 小米);IterableProduct products  productDao.search(termQueryBuilder);for (Product product : products) {System.out.println(product);}}/*** term 查询加分页*/Testpublic void termQueryByPage(){int currentPage 0 ;int pageSize  5;//设置查询分页PageRequest pageRequest  PageRequest.of(currentPage, pageSize);TermQueryBuilder termQueryBuilder  QueryBuilders.termQuery(title, 小米);IterableProduct products productDao.search(termQueryBuilder,pageRequest);for (Product product : products) {System.out.println(product);}}}