范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

浅谈SpringDataElasticSearch

  Spring Data
  Spring Data 帮助我们避免了一些样板式代码,比如我们要定义一个接口,可以直接继承接口ElasticSearchRepository接口,这样Spring Data就帮助我们实现了操作documents基础的CURD方法,在ES里index类似RDBMS里table的概念,documents类似table里datarow的概念,所以ElasticSearchRepository默认已经帮我们实现了操作documents的方法。 类似Spring Data JPA,我们也可以根据约定实现自己想要的方法。Maven dependency    org.springframework.boot    spring-boot-starter-data-elasticsearch 配置映射
  这里在实体类Product上使用了Document注解,配置了index名称,index就相当于一张表。@Document(indexName = "productindex") public class Product {     @Id     private String id;      @Field(type = FieldType.Text, name = "name")     private String name;      @Field(type = FieldType.Double, name = "price")     private Double price;      @Field(type = FieldType.Integer, name = "quantity")     private Integer quantity;      @Field(type = FieldType.Keyword, name = "category")     private String category;      @Field(type = FieldType.Keyword, name = "desc")     private String description;      @Field(type = FieldType.Date, name = "createdDateTime")     private LocalDate createdDateTime;      @Field(type = FieldType.Nested, includeInParent = true)     private List authors; }定义接口public interface ProductRepository extends ElasticsearchRepository {     Product findByName(String name);      Page findByName(String name, PageRequest pageRequest);          Page findByNameContaining(String name, PageRequest pageRequest); }java 配置@Configuration @EnableElasticsearchRepositories(basePackages = "com.shanxi.springbootes.repository") @ComponentScan(basePackages = {"com.shanxi.springbootes"}) public class ElasticSearchConfig extends AbstractElasticsearchConfiguration {      @Override     @Bean     public RestHighLevelClient elasticsearchClient() {         ClientConfiguration config = ClientConfiguration                 .builder()                 .connectedTo("localhost:9200")                 .build();          return RestClients.create(config).rest();     }      @Bean     public ElasticsearchRestTemplate elasticsearchRestTemplate(){         return new ElasticsearchRestTemplate(elasticsearchClient());     } }创建index和documents
  Spring Data ElasticSearch默认已经自动帮助我们创建index,我们也可以手动通过程序创建index。创建和删除index//创建index this.elasticsearchRestTemplate.indexOps(Product.class).create();  //删除index this.elasticsearchRestTemplate.indexOps(Product.class).delete(); 创建documents @Test  public void it_should_create_product_documents_successful(){      List products = new ArrayList<>();       for(int i =1;i<=30;i++){             Product product =new Product();              product.setName("python"+i)                     .setPrice(30d)                     .setQuantity(10)                     .setCategory("book"+i)                     .setDescription("a nice book"+i)                     .setCreatedDateTime(LocalDate.now())             ;              product.setAuthors(Arrays.asList(new Author("李雷"),new Author("韩梅梅")));              products.add(product);      }       this.productRepository.saveAll(products);      Assertions.assertEquals(products.size(),30); }编辑documents @Test  public void it_should_update_Product_successful(){     Product product =  this.productRepository.findByName("python1");     product.setQuantity(15);      this.productRepository.save(product);      Assertions.assertEquals(15, product.getQuantity());   }删除documents@Test public void it_should_delete_Product_successful(){     Product product = this.productRepository.findById("ygnG3n4B9LwueG0uoDc2").get();     this.productRepository.delete(product); }查询documents精确查询 @Test  public void it_should_call_findBy_successful(){     Product product = this.productRepository.findByName("python2");      Assertions.assertEquals(product.getQuantity(),10);     Assertions.assertEquals(product.getPrice(),30d);  }匹配查询
  这个方法使用Name模糊查询,并且支持分页。@Test public void it_should_call_findByNameContaining_success(){     Page page = this.productRepository.findByNameContaining("python", PageRequest.of(1,10));     for (Product product : page.toList()) {         System.out.println(product.toString());     }      Assertions.assertEquals(page.toList().size(),10); }

138页K8S经典实战案例,图文细致代码可复制,进阶学习仅分享3天K8S是一个完备的分布式系统支撑平台,具有多种优质能力,同时K8S提供完善的管理工具,涵盖了包括开发部署运维在内的各个环节。在容器技术革命中,K8S俨然已是容器编排领域的王者,阿里一张思维导图囊括90Linux知识点,高清彩图,仅分享3天很多朋友在学习Linux的时候,都无从下手,不知道从哪学起,也不知道该学什么,今天给大家分享一份Linux思维导图,导图中的4个颜色分别着代表不同程度的学习重点红色需重点学习,常用一文详解HTTP,超强总结,值得收藏HTTP是什么?我们要打开一个网站的时候,只需要在浏览器地址栏,输入其域名就可以了,比如www。magedu。com但当我们打开网页时,却显示httpwww。magedu。com或VIM从入门到精通VIM命令操作手册!速速来领它来了,它来了,vim学习笔记和vim命令操作手册终于整理好了,有需要的小伙伴,可以来领取啦!Vim是从vi发展出来的一个文本编辑器。代码补完编译及错误跳转等方便编程的功能特别丰富一文讲透彻网络协议与管理,概念模型设备等全部包含,快拿走网络协议是网络运行的基石,也是计算机之间通信的准则,更是前后端开发必须掌握的知识点之一,因此了解网络协议与管理,对于IT行业从业人员来说有着莫大的好处。学习需要捷径,今天给大家分析计算机网络学不会?647页超全面计算机网络笔记,珍藏版干货满满不少朋友都反映计算机网络太难学,那么计算机网络为什么这么难学?一知识点太多。网络的构成就像一个社会,错综复杂,内容繁多二知识点乏味。知识点很无趣,理论过于抽象,不容易理解。但其实计这张思维导图,涵盖Python所有核心知识点,PDF赶快拿走这张Python思维导图,涵盖了所有的核心知识点,包括基础知识爬虫函数模块类和对象等,从以往假大空的知识堆砌转变为清晰实用的知识体系,十分适合初学者参考学习。讲解详细,十分高清,核膜拜!华为大牛总结的Linux学习笔记,超全面详细看这一篇就够了近年来,Linux系统已经不再局限于业内人士使用了,除了IT行业,也渗透到了其他领域,对于IT人员来说,光了解Linux基础是远远不够的,深层原理也要熟练掌握。今天给大家分享一份L最详细计算机网络学习笔记(有这一篇就够了)作为程序员的你,不管在从事开发还是运维,计算机网络的重要性绝对不亚于语言基础,毕竟平时开发和维护经常会和网络打交道。而计算机网络学习的核心内容就是网络协议的学习。特别是针对运维人员GPDPocket2掌上电脑,还是你钟情的那个7英寸设备为了适配宽屏视频的需求,现在的屏幕是越来越长,长宽比从最初的43一路演变成20。59,屏幕越来越长,而相同尺寸下,越长的屏幕其实有效显示面积是越小的,过长的样子也丧失了美感。权衡视工作一时爽,出门用GPDP2Max掌上电脑工作一直爽有那样一种人,他们喜欢工作,沉迷于工作中的挑战,他们工作时甚至有爽的感觉,他们时时刻刻带着他们的生产力工具笔记本电脑,他们是工作狂。但时刻带着硕大沉重的生产力工具真的是不爽,而一款
从AI换脸到虚拟数字人,海百川要做元宇宙时代的技术提供商文刘晓潼编辑江倩君元宇宙风口,使实体经济和虚拟经济结合愈发紧密。被认为是元宇宙时代的重要基础设施,也是虚实经济结合的重要载体虚拟数字人,早在该风口来临之前便在游戏动漫等场景有实际落协同推进人工智能产业创新作者王黎萤(浙江工业大学中国中小企业研究院)赵春苗(浙江工业大学管理学院)李平(中国社会科学院数量经济与技术经济研究所)第四次工业革命的到来,加速了各产业间以人工智能技术为核心的创黑龙江省市场监督管理局压实平台主体责任规范黑土经营行为为贯彻落实黑龙江省黑土地保护利用条例,加强网络黑土经营行为监管,近日,黑龙江省市场监督管理局与阿里巴巴集团京东拼多多平台企业黑龙江区域相关负责人以视频形式开展座谈,了解平台企业对平元宇宙新鲜事高通已与字节跳动建立合作伙伴关系电竞俱乐部FPX宣布推出FPX元宇宙财联社区块链日报5月9日讯今日元宇宙新鲜事有电竞俱乐部FPX宣布推出FPX元宇宙高通CEO称正与Meta字节跳动等公司在元宇宙上展开合作。世界知名电竞俱乐部FPX宣布推出FPX元宇韩国三星现代等韩企将出席总统就职晚宴,为商界巨头首次获邀韩国中央日报5月9日报道,在5月10日举行的韩国总统就任晚宴上,三星电子副董事长李在镕等来自韩国5大企业的商界巨头将出席。具体来看,包括三星电子副会长李在镕现代汽车集团会长郑义宣SMySQL学习实践DAY12SELECT命令子查询WHAT(什么是子查询)嵌套在其他查询中的查询WHY(为什么需要子查询)简化查询语句,把多步查询,利用嵌套变为单步查询。利用子查询可以实现类似分组统计的功能。HOW(怎么样进行子查实战Prometheusblackboxexporter黑盒监控一Blackboxexporter安装部署1。1Blackbox配置文件rootmayiopscatblackboxexportcpnfogmap。yamlapiVersionv1Python命名规则与注释风格命名规则名称不要缩写!!!名称不要缩写!!!名称不要缩写!!!包命名小写,下划线连接单词模块命名小写,下划线连接单词类命名双驼峰,MyClass函数命名小写,下划线连接单词全局变量本网开设涉互联网算法推荐专项举报渠道自贡网涉互联网算法推荐专项举报渠道为认真落实中央网信办关于开展清朗。2022算法综合治理专项行动的通知的工作部署,按照互联网信息服务算法推荐管理规定第二十二条算法推荐服务提供者应当如果马斯克成为美国的下一任总统呢?特斯拉在上海又建第二工厂,是真的好吗?特斯拉看起来是一部车,其实它是一个非常大的雷达,它有着非常先进的高清计算机视觉可以无时无刻进行地势感知。获取影像整理数据,然后向某一个云端的服红米K50Pro评测,让你爱不起来也讨厌不起来的平庸之作在今年的小米产品中,RedmiK50系列是一个独特的存在,与小米12系列比,小米K50系列无疑算是成功的,在京东平台上,K50系列目前的总销量是10万出头的样子,显然要比小米12的