七天进阶elasticsearch[Four]

依赖:

  <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId><version>3.3.0</version></dependency>

如果我们定义一个存储库接口来扩展 Spring Data Elasticsearch 提供的 ElasticsearchRepository 接口*,*则默认情况下,相应文档类的 CRUD 操作将变为可用。

此外,方法实现只需以预定义格式声明具有名称的方法即可为我们生成。无需编写存储库接口的实现。

搭建 一个spring项目后引入依赖;

es配置类:

/*** @EnableElasticsearchRepositories将使* Spring Data Elasticsearch 扫描提供的* Spring Data 存储库包*/
@Configuration
@EnableElasticsearchRepositories(basePackages = "com.gavin.elasticSearch.repository")
@ComponentScan(basePackages = "com.gavin.elasticSearch.service")
public class ESConfig extends AbstractElasticsearchConfiguration {@Bean@Overridepublic RestHighLevelClient elasticsearchClient() {ClientConfiguration clientConfiguration = ClientConfiguration.builder().connectedTo("172.21.114.22:9200").build();return RestClients.create(clientConfiguration).rest();}
}

实体映射:

@Data
@Document(indexName = "book")
public class Book {@Field("id")private String id;@Field("name")private String name;@Field("price")private int price;}

crud服务:

Spring Data Elasticsearch 通常会根据项目中的实体自动创建索引,当然这需要我们配置一下,在实体类上添加相应的注解;

新增索引:


@RestController
@RequestMapping("/elastic")
public class ElasticController {@Autowiredprivate BookInfoRepository bookInfoRepository;@PostMapping("/addIndex")public String addIndex(@RequestBody Book book) throws IOException {Book save = bookInfoRepository.save(book);System.out.println(save);return "添加成功";}}

查询:

    /*** 基于名称的查询* @return*/@GetMapping("/findBookByName")public Book getBookInfoByName(String name) {Page<Book> elastic = bookInfoRepository.findBookByName(name, Pageable.ofSize(1));Book book = elastic.get().findFirst().get();return book;}

自定义查询:

@GetMapping("/test")public Book filterBook() {//构造一个查询器MatchQueryBuilder matchQueryBuilder = new MatchQueryBuilder("name", "ElasticSearch");NativeSearchQuery nativeSearchQuery = new NativeSearchQueryBuilder().withFilter(matchQueryBuilder).build();ElasticsearchRestTemplate elasticsearchRestTemplate = new ElasticsearchRestTemplate(restHighLevelClient);SearchHits<Book> search = elasticsearchRestTemplate.search(nativeSearchQuery, Book.class);search.getSuggest();long totalHits = search.getTotalHits();String s = String.valueOf(totalHits);Integer i = Integer.valueOf(s);Book content = search.getSearchHit(i-1).getContent();return content;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/25982.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idea鼠标滚轮滚动放大缩小字体

在idea中的【file】->【settings】菜单&#xff0c;弹出settings窗口&#xff0c;点击窗口中的【Editor】->【General】&#xff0c;在右侧窗口中&#xff0c;选中【Change font size with CtrlMouse Wheel in All editors】即可。

「动态规划」如何求粉刷房子的最少花费?

LCR 091. 粉刷房子https://leetcode.cn/problems/JEj789/description/ 假如有一排房子&#xff0c;共n个&#xff0c;每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种&#xff0c;你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。当然&#xff0c;因为市…

通过 CartPole 游戏详细说明 PPO 优化过程

CartPole 介绍 在一个光滑的轨道上有个推车&#xff0c;杆子垂直微置在推车上&#xff0c;随时有倒的风险。系统每次对推车施加向左或者向右的力&#xff0c;但我们的目标是让杆子保持直立。杆子保持直立的每个时间单位都会获得 1 的奖励。但是当杆子与垂直方向成 15 度以上的…

springboot与flowable(1):介绍、Flowable-ui使用

一、工作流引擎使用场景 工作流在企业管理系统中是高频使用的功能&#xff0c;一个最常见的例子是请假加班申请与审批的过程。事实上&#xff0c;工作流引擎能支持的业务场景远远不止单据审批&#xff0c;几乎所有涉及到业务流转、多人按流程完成工作的场景背后都可以通过工作流…

任务4.8.1 利用Spark SQL实现词频统计

实战&#xff1a;利用Spark SQL实现词频统计 目标 使用Apache Spark的Spark SQL模块&#xff0c;实现一个词频统计程序。 环境准备 本地文件准备 在本地/home目录下创建words.txt文件。 HDFS文件准备 创建HDFS目录/wordcount/input。将words.txt文件上传到HDFS的/wordcount…

在 Visual Studio 2022 中配置 OpenCV

在 Visual Studio 2022 中配置 OpenCV 软件准备系统环境配置VS 2022 环境配置测试 软件准备 Visual Studio 2022 下载链接 OpenCV 下载链接 Visual Studio 的版本与 OpenCV 的 vc 版本需对应好&#xff0c;可以向下兼容&#xff1a; VS 2015 – vc14VS 2017 – vc15VS 2019…

【启明智显芯片应用】Model3C芯片4.3寸拼图机应用方案

数据显示&#xff0c;618前期&#xff0c;早教启智、智能玩具、科学启蒙、数字阅读类产品销量增长迅猛。当下&#xff0c;90后新生代父母对于孩子的科学启蒙教育愈发重视&#xff0c;他们在给孩子选择学习产品时&#xff0c;越来越倾向于选择寓教于乐的益智类产品&#xff0c;而…

PNAS | 工作记忆中大脑节律的因果功能图

摘要 工作记忆是一个涉及大脑中多个功能解剖节点的关键认知过程。尽管有大量与工作记忆结构相关的神经影像学证据&#xff0c;但我们对控制整体表现的关键中枢的理解并不完整。因果解释需要在对特定功能解剖节点进行安全、暂时和可控的神经调节后进行认知测试。随着经颅交流电…

工业机器人远程运维,增强智慧工厂运营管理

1、需求背景 随着工业自动化技术的普及和工业机器人应用的增加&#xff0c;制造业对于生产线稳定性和效率的要求不断提高。然而&#xff0c;传统的现场监控方式存在着地理位置限制、实时监控难度大以及诊断能力有限等问题&#xff0c;迫切需要一种更具灵活性和效率的监控方式。…

【Unity回调函数】创建自己的外部回调函数——以按钮点击为例

引言 在Unity开发过程中&#xff0c;回调函数是一种强大的机制&#xff0c;它允许我们在特定事件发生时执行预定义的代码块。这不仅增加了代码的模块化&#xff0c;还提升了项目的可维护性和扩展性。本文将以一个简单的小案例——按钮点击事件处理——为例&#xff0c;详细介绍…

充电宝哪个牌子好?10款主流款充电宝推荐

步入高速发展的快充时代&#xff0c;一个优质的充电宝已成为我们日常生活中的必备良品。本文将为大家介绍10主流款的充电宝品牌&#xff0c;它们包括西圣PB、品胜、京东京造、京东京造、飞利浦、倍思等知名品牌的系列产品。这些充电宝涵盖了不同的容量和快充协议&#xff0c;能…

redis windos修复版本

遇到的问题: Django的channel插件连接安装在windows上的redis报错: unknown command BZPOPMIN, channels-redis版本和redis不兼容导致.解决方案: 更新Redis版本. 微软官方维护的 Redishttps://github.com/microsoftarchive/redis/releases 2016年后就不更新了, 版本停留在了3.x…

【Vue】构建vuex-cart模块

说明&#xff1a;既然明确数据要存 vuex&#xff0c;建议分模块存&#xff0c;购物车数据存 cart 模块&#xff0c;将来还会有 user 模块&#xff0c;article 模块… 新建 store/modules/cart.js 挂载到 vuex 仓库上 store/cart.js import Vue from vue import Vuex from vu…

2024年城市建设、运输与智慧交通国际会议(ICUCTST 2024)

2024 International Conference on Urban Construction, Transportation, and Smart Transportation 【1】大会信息 会议简称&#xff1a;ICUCTST 2024 大会地点&#xff1a;中国厦门 会议官网&#xff1a;www.icuctst.com 投稿邮箱&#xff1a;icuctstsub-paper.com 【2】会…

【论文】2405.Phased Consistency Model(港中文提出了AI绘画加速模型,一步采样生成图像,支持SD1.5,SDXL)

论文&#xff1a;https://arxiv.org/abs/2405.18407 &#xff08;2024.05.30发布&#xff09; 代码&#xff1a;https://github.com/G-U-N/Phased-Consistency-Model 一、论文要解决什么问题&#xff1f;效果如何&#xff1f; (需要先了解LCM模型) (阶段性一致性模型:朝着稳定…

使用docker部署在MacOS上部署minecraft服务器

使用docker部署在MacOS上部署minecraft服务器 本篇文章介绍使用docker容器的方式在MacOS操作系统上搭建最新版本minecraft服务器。事情的起因是租用的阿里云到期了&#xff0c;正好手中有一台闲置的M1芯片mac mini&#xff0c;且自己有内网穿透的软件&#xff0c;因此决定将它…

后端面试题分享查看测试代码

问题描述 编写一个函数&#xff0c;该函数接受一个字符串作为参数&#xff0c;检查该字符串是否符合密码强度要求&#xff0c; 返回True或False。 要求 密码强度要求如下&#xff1a; 不能小于6个字符必须出现大写、小写、数字、特殊字符&#xff08;!#$%^&*_-&#xf…

(免费领源码)基于 node.js#vue#mysql的网上游戏商城35112-计算机毕业设计项目选题推荐

摘 要 本论文主要论述了如何使用node.js语言开发一个基于vue的网上游戏商城&#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;本系统采用的数据库是Mysql&#xff0c;使用node.js的koa技术技术构建的一个管理系统&#xff0c;实现了本系统的全部功能。在…

Java--Math类和Random类

1.Math类简介 1.Math类中提供了大量用于数学运算的相关方法。 2.Math类是使用final修饰的终结类&#xff0c;不能产生子类 3.Math类中的方法都是static修饰的静态方法&#xff0c;可以通过类名.方法名直接调用 2.Math常用方法 1.abs(int)&#xff1a;求绝对值(int,long,floa…