当前位置: 首页 > news >正文

网站正在建设中源码值得相信的西安网站开发

网站正在建设中源码,值得相信的西安网站开发,企业网站营销案例,发布信息的免费平台🌹 以上分享 从入门到进阶 之 ElasticSearch SpringData 继承篇,如有问题请指教写。🌹🌹 如你对技术也感兴趣,欢迎交流。🌹🌹🌹 如有需要,请👍点赞&#x1f…
🌹 以上分享 从入门到进阶 之 ElasticSearch SpringData 继承篇,如有问题请指教写。🌹🌹 如你对技术也感兴趣,欢迎交流。🌹🌹🌹  如有需要,请👍点赞💖收藏🐱‍🏍分享 


Spring Data

        Spring Data 是一个用于简化数据库、非关系型数据库、索引库访问,并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷,并支持 map-reduce 框架和云计算数据服务。 Spring Data 可以极大的简化JPA (Elasticsearch.·.)的写法,在几乎不用写实现的情况下,实现对数据的访问和操作。除了 CRUD 外,还包括如分页、排序等功能

Spring DataLevel up your Java code and explore what Spring can do for you.icon-default.png?t=N7T8https://spring.io/projects/spring-data

POM

        <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId></dependency>

项目结构 

配置

@Data
@Configuration
@ConfigurationProperties(prefix = "elasticsearch")
public class ElasticSearchConfig extends AbstractElasticsearchConfiguration {private String host;private Integer port;@Overridepublic RestHighLevelClient elasticsearchClient() {String scheme = "http";return new RestHighLevelClient(RestClient.builder(new HttpHost(host, port, scheme)));}
}

实体

@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
@Document(indexName = "product", shards = 3, replicas = 1)
public class Product {/*** 商品唯一标识*/@Idprivate Long id;/*** 商品名称*/@Field(type = FieldType.Text)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;
}

 Dao

 测试类

import com.mcp.es.entity.Product;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
import org.springframework.test.context.junit4.SpringRunner;@SpringBootTest
@RunWith(SpringRunner.class)
class EsSpringApplicationTests {@Autowiredprivate ElasticsearchRestTemplate template;}

创建索引

// 将根据实体类中的配置参数,自动创建索引	
@Testvoid createIndex() {System.out.println("自动创建索引");}

索引操作

文档 

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringDataEsRepositoryTest {@Autowiredprivate ProductRepository repository;
}

 基础操作

	@Testpublic void save(){Product product = new Product();product.setId(1000L);product.setTitle("华为手机");product.setCategory("手机");product.setPrice(2999.0);product.setImages("http://www.atguigu/hw.jpg");repository.save(product);}

//修改@Testpublic void update(){Product product = new Product();product.setId(1000L);product.setTitle("小米 2 手机");product.setCategory("手机");product.setPrice(9999.0);product.setImages("http://www.atguigu/xm.jpg");repository.save(product);}

	//根据 id 查询@Testpublic void findById(){Product product = repository.findById(1000L).get();System.out.println(product);}

	@Testpublic void findAll(){Iterable<Product> products = repository.findAll();for (Product product : products) {System.out.println(product);}}

	//删除@Testpublic void delete(){Product product = new Product();product.setId(1000L);repository.delete(product);}

 

//批量新增@Testpublic void saveAll(){List<Product> 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);}repository.saveAll(productList);}

	//分页查询@Testpublic void findByPageable(){//设置排序(排序方式,正序还是倒序,排序的 id)Sort sort = Sort.by(Sort.Direction.DESC,"id");int currentPage=0;//当前页,第一页从 0 开始, 1 表示第二页int pageSize = 5;//每页显示多少条//设置查询分页PageRequest pageRequest = PageRequest.of(currentPage, pageSize,sort);//分页查询Page<Product> productPage = repository.findAll(pageRequest);for (Product Product : productPage.getContent()) {System.out.println(Product);}}

 

文档搜索

/*** term 查询* search(termQueryBuilder) 调用搜索方法,参数查询构建器对象*/@Testpublic void termQuery(){TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("title", "小米");Iterable<Product> products = repository.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", "小米");Iterable<Product> products =repository.search(termQueryBuilder,pageRequest);for (Product product : products) {System.out.println(product);}}

http://www.yayakq.cn/news/706683/

相关文章:

  • 入侵织梦网站网站怎样做移动端
  • 上饶网站建设公司免费个人网站服务器推荐
  • 一个空间建多个网站的方法网站备案完毕 怎样建设网站
  • 珠海做网站那家好企业软文营销发布平台
  • 如何组建做网站的团队锦州网站设计
  • 广东网站设计公司wordpress表单打印
  • 代理分佣后台网站开发重庆网站托管服务
  • 汽车网站建设制作费用沈阳做网站企业
  • 宠物网站建设方案网站正在建设中模板 html
  • 网站开发广告怎么写专业管网建设服务
  • 福州市住房和城乡建设部网站做网站后租服务器一年多少钱
  • php做网站知乎手机上购物哪个平台比较好
  • 南京房产网站建设安卓版下载
  • 安阳市网站制作公司网站建设 中企动力医院
  • 惠州网红电子商务seo优化
  • 自适应网站系统吗网站关键词添加多少个
  • 网站建设的目的意义东莞人才网求职
  • 怎么做好网站搜索引擎优化1688淘宝货源一件代发
  • 如何建微网站网站建设公司的电话
  • 58同城兰州网站建设买卖域名挣几十万
  • 重庆造价信息网官网首页绍兴seo网站推广
  • 网站建设分哪几种官方网站撰写策划书
  • 合肥建设网络网站网站电商运营培训多少钱
  • 网站建设销售焦作seo公司
  • 万网网站价格哪些网站适合做外贸网站推广
  • 国外优秀的字体设计网站亿星网站建设
  • 如何使用wordpress制作网站什么是网络营销环境的外部因素
  • dz做网站js不起作用网站建设有几种
  • 创业大赛网站建设家教网站代理
  • 昆明会员网站建设asp.net网站开发使用到的技术