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

中国建设招聘网站甘肃分行公司简介50字

中国建设招聘网站甘肃分行,公司简介50字,企石镇网站仿做,个人可以建设网站吗不备案Elasticsearch集成 Spring Data是一个用于简化数据库、非关系型数据库、索引库访问#xff0c;并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷#xff0c;并支持 map-reduce框架和云计算数据服务。Spring Data可以极大的简化JPA(Elasticsearch…)的写法…Elasticsearch集成 Spring Data是一个用于简化数据库、非关系型数据库、索引库访问并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷并支持 map-reduce框架和云计算数据服务。Spring Data可以极大的简化JPA(Elasticsearch…)的写法可以在几乎不用写实现的情况下实现对数据的访问和操作。除了CRUD 外还包括如分页、排序等一些常用的功能。 Spring Data 的官网 Spring Data 常用的功能模块如下 Spring Data JDBC Spring Data JPA Spring Data LDAP Spring Data MongoDB Spring Data Redis Spring Data R2DBC Spring Data REST Spring Data for Apache Cassandra Spring Data for Apache Geode Spring Data for Apache Solr Spring Data for Pivotal GemFire Spring Data Couchbase Spring Data Elasticsearch Spring Data Envers Spring Data Neo4j Spring Data JDBC Extensions Spring for Apache HadoopSpring Data Elasticsearch 介绍 Spring Data Elasticsearch基于Spring Data API简化 Elasticsearch 操作将原始操作Elasticsearch 的客户端API进行封装。Spring Data为Elasticsearch 项目提供集成搜索引擎。Spring Data Elasticsearch POJO的关键功能区域为中心的模型与Elastichsearch交互文档和轻松地编写一个存储索引库数据访问层。 Spring Data Elasticsearch 官网 框架集成-SpringData-代码功能集成 一、创建Maven项目。 二、修改pom文件增加依赖关系。 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.3.6.RELEASE/versionrelativePath//parentgroupIdcom.lun/groupIdartifactIdSpringDataWithES/artifactIdversion1.0.0-SNAPSHOT/versionpropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.target/propertiesdependenciesdependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-elasticsearch/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactIdscoperuntime/scopeoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-test/artifactId/dependencydependencygroupIdjunit/groupIdartifactIdjunit/artifactId/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-test/artifactId/dependency/dependencies /project三、增加配置文件。 在 resources 目录中增加application.properties文件 #es 服务地址 elasticsearch.host127.0.0.1 #es 服务端口 elasticsearch.port9200 #配置日志级别,开启 debug 日志 logging.level.com.atguigu.esdebug四、Spring Boot 主程序 import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;SpringBootApplication public class MainApplication {public static void main(String[] args) {SpringApplication.run(MainApplication.class, args);} }五、数据实体类。 import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.ToString; import org.springframework.data.annotation.Id; import org.springframework.data.elasticsearch.annotations.Document; import org.springframework.data.elasticsearch.annotations.Field; import org.springframework.data.elasticsearch.annotations.FieldType;Data NoArgsConstructor AllArgsConstructor ToString 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;//图片地址 }六、配置类 ElasticsearchRestTemplate是spring-data-elasticsearch项目中的一个类,和其他spring项目中的 template类似。 在新版的spring-data-elasticsearch 中ElasticsearchRestTemplate 代替了原来的ElasticsearchTemplate。 原因是ElasticsearchTemplate基于TransportClientTransportClient即将在8.x 以后的版本中移除。所以我们推荐使用ElasticsearchRestTemplate。 ElasticsearchRestTemplate基于RestHighLevelClient客户端的。需要自定义配置类继承AbstractElasticsearchConfiguration并实现elasticsearchClient()抽象方法创建RestHighLevelClient对象。 AbstractElasticsearchConfiguration源码 package org.springframework.data.elasticsearch.config;import org.elasticsearch.client.RestHighLevelClient; import org.springframework.context.annotation.Bean; import org.springframework.data.elasticsearch.core.ElasticsearchOperations; import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate; import org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter;/*** author Christoph Strobl* author Peter-Josef Meisch* since 3.2* see ElasticsearchConfigurationSupport*/ public abstract class AbstractElasticsearchConfiguration extends ElasticsearchConfigurationSupport {//需重写本方法public abstract RestHighLevelClient elasticsearchClient();Bean(name { elasticsearchOperations, elasticsearchTemplate })public ElasticsearchOperations elasticsearchOperations(ElasticsearchConverter elasticsearchConverter) {return new ElasticsearchRestTemplate(elasticsearchClient(), elasticsearchConverter);} }需要自定义配置类继承AbstractElasticsearchConfiguration并实现elasticsearchClient()抽象方法创建RestHighLevelClient对象。 import lombok.Data; import org.apache.http.HttpHost; import org.elasticsearch.client.RestClient; import org.elasticsearch.client.RestClientBuilder; import org.elasticsearch.client.RestHighLevelClient; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; import org.springframework.data.elasticsearch.config.AbstractElasticsearchConfiguration;ConfigurationProperties(prefix elasticsearch) Configuration Data public class ElasticsearchConfig extends AbstractElasticsearchConfiguration{private String host ;private Integer port ;//重写父类方法Overridepublic RestHighLevelClient elasticsearchClient() {RestClientBuilder builder RestClient.builder(new HttpHost(host, port));RestHighLevelClient restHighLevelClient newRestHighLevelClient(builder);return restHighLevelClient;} }七、DAO 数据访问对象 import com.lun.model.Product; import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; import org.springframework.stereotype.Repository;Repository public interface ProductDao extends ElasticsearchRepositoryProduct, Long{}框架集成-SpringData-集成测试-索引操作 import com.lun.model.Product; 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.elasticsearch.core.ElasticsearchRestTemplate; import org.springframework.test.context.junit4.SpringRunner;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);} }用Postman 检测有没有创建和删除。 #GET http://localhost:9200/_cat/indices?v 框架集成-SpringData-集成测试-文档操作 import com.lun.dao.ProductDao; import com.lun.model.Product; 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.data.domain.PageRequest; import org.springframework.data.domain.Sort; import org.springframework.test.context.junit4.SpringRunner;import java.util.ArrayList; import java.util.List;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);}} }框架集成-SpringData-集成测试-文档搜索 import com.lun.dao.ProductDao; import com.lun.model.Product; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.TermQueryBuilder; 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.PageRequest; import org.springframework.test.context.junit4.SpringRunner;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);}}}
http://www.sadfv.cn/news/160200/

相关文章:

  • 5G网站建设上海注册公司买新能源车
  • 深圳专业学校网站建设北京科技公司
  • 在线3d建模网站今天重大新闻50字
  • 苏州网站建站推广电商网站建设费用价格
  • 建设的网站别人登录密码杭州网站建设页面
  • 导游网站如何建设的上海企业投资人名录
  • 网站制作公司拟安徽餐饮加盟网站建设
  • 湛江专业建站公司爱网逛
  • 在vs上用c 做登录网站企业所得税优惠政策最新2023计算
  • 企业百度网站建设公司网站怎么建
  • 河南省住房与城乡建设厅网站首页软件开发公司
  • 网站设计理念怎么写室内设计手绘图
  • wordpress 导航网站谷歌手机版浏览器官网
  • vs2017网站开发组件网站分屏布局设计
  • 扶贫工作网站建设方案网站引擎友好性分析
  • 什么类型的产品可以做网站出口安卓市场wordpress主题
  • 修改数据库密码 进不了网站后台做产地证的网站
  • 中铁建设工程项目公示网站想学平面设计哪个网上可以学
  • 网站开发的母的目的和意义.服务商是什么意思
  • 制作网站深圳亚马逊云服务器收费标准
  • 网站上的flv视频看不了济南百度seo排名公司
  • 做外贸常用的网站有哪些网页制作与设计软件
  • 百度权重9的网站北京十大室内设计公司排名
  • 有哪些网站是做网批女装浦东新区做网站
  • 济南企业网站制作wordpress自媒体博客模板
  • 哈尔滨自助建站网站需要备案才能建设吗
  • 有没有教做网站实例视频wordpress外链转内链代码
  • 建立网站需要什么条件我要自学网网站建设
  • 成都网站建设行业分析frame wordpress
  • 哈尔滨企业建站服务商王野发动机怎么样