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

ES: spring boot中使用ElasticsearchClient

一、依赖:(要根据不同版本的ES来调整依赖,否则会报错,不支持太低版本的ES,比如7.6以下的)

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId><version>3.2.3</version></dependency><dependency><groupId>co.elastic.clients</groupId><artifactId>elasticsearch-java</artifactId><version>7.16.0</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.12.3</version></dependency>

二、定义实体类:

package cn.edu.tju.test4;public class Product {private String name;private String desc;private double price;public Product() {}public Product(String name, String desc, double price) {this.name = name;this.desc = desc;this.price = price;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getDesc() {return desc;}public void setDesc(String desc) {this.desc = desc;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}@Overridepublic String toString() {return "Product{" +"name='" + name + '\'' +", desc='" + desc + '\'' +", price=" + price +'}';}
}

三、配置ElasticsearchClient

package cn.edu.tju.config;import co.elastic.clients.elasticsearch.ElasticsearchClient;
import co.elastic.clients.json.jackson.JacksonJsonpMapper;
import co.elastic.clients.transport.ElasticsearchTransport;
import co.elastic.clients.transport.rest_client.RestClientTransport;
import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class ElasticsearchClientConfig {@Value("${spring.elasticsearch.uris}")private String serverAddress;@Beanpublic ElasticsearchClient getElasticsearchClient(){RestClient restClient = RestClient.builder(HttpHost.create(serverAddress)).build();ElasticsearchTransport transport = new RestClientTransport(restClient, new JacksonJsonpMapper());ElasticsearchClient esClient = new ElasticsearchClient(transport);return esClient;}
}

其中ES服务器的地址复用spring data ES 的spring.elasticsearch.uris

四、使用ElasticsearchClient操作索引

package cn.edu.tju.controller;import cn.edu.tju.test4.Product;
import co.elastic.clients.elasticsearch.ElasticsearchClient;
import co.elastic.clients.elasticsearch.core.GetResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class EsDemoController5 {@Autowiredprivate ElasticsearchClient esClient;@RequestMapping("/test6")public String test6() throws Exception{GetResponse<Product> productGetResponse = esClient.get(g -> g.index("demo7").id("1"),Product.class);String result = productGetResponse.source().toString();return result;}
}

其中ES 7.16.2中demo7这个索引的mapping如下:

{"demo7" : {"mappings" : {"properties" : {"desc" : {"type" : "text","fields" : {"keyword" : {"type" : "keyword","ignore_above" : 256}}},"name" : {"type" : "text","fields" : {"keyword" : {"type" : "keyword","ignore_above" : 256}}},"price" : {"type" : "float"}}}}
}

相关文章:

ES: spring boot中使用ElasticsearchClient

一、依赖&#xff1a;&#xff08;要根据不同版本的ES来调整依赖,否则会报错&#xff0c;不支持太低版本的ES&#xff0c;比如7.6以下的&#xff09; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-e…...

实体框架EF(Entity Framework)简介

实体框架EF&#xff08;Entity Framework&#xff09;简介 文章目录 实体框架EF&#xff08;Entity Framework&#xff09;简介一、概述二、O/R Mapping是什么采用O/R Mapping带来哪些好处 三、Entity Framework架构3.1 下图展示了Entity Framework的整体架构3.2 Entity Framew…...

使用CUDA 为Tegra构建OpenCV

返回&#xff1a;OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;MultiArch与Ubuntu/Debian 的交叉编译 下一篇&#xff1a;在iOS中安装 警告&#xff1a; 本教程可能包含过时的信息。 使用CUDA for Tegra 的OpenCV 本文档是构建支持 CUD…...

YoloV8改进策略:BackBone改进|PKINet

摘要 PKINet是面向遥感旋转框的主干,网络包含了CAA、PKI等模块,给我们改进卷积结构的模型带来了很多启发。本文,使用PKINet替代YoloV8的主干网络,实现涨点。PKINet是我在作者的模型基础上,重新修改了底层的模块,方便大家轻松移植到YoloV8上。 论文:《Poly Kernel Ince…...

如何在Linux系统部署Dupal CMS结合内网穿透实现无公网IP访问web界面

文章目录 前言1. Docker安装Drupal2. 本地局域网访问3 . Linux 安装cpolar4. 配置Drupal公网访问地址5. 公网远程访问Drupal6. 固定Drupal 公网地址 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&a…...

小巧玲珑的SQLite

SQLite是桌面端和移动端的不错选择 前言 SQLite身影无处不在。 SQLite&#xff0c;是一款轻型的数据库&#xff0c;是遵守ACID的关系型数据库管理系统&#xff0c;它的设计目标是嵌入式的&#xff0c;而且目前已经在很多嵌入式产品中使用了它&#xff0c;它占用资源非常的低&a…...

【Android 内存优化】 native内存泄漏监控方案源码分析

文章目录 前言使用效果使用apiJNI的动态注册native方法动态注册 hook的实现android_dlopen_ext和dl_iterate_phdr naive监控的实现nativeGetLeakAllocs 总结 前言 Android的native泄漏怎么检测&#xff1f;下面通过研究开源项目KOOM来一探究竟。 使用效果 未触发泄漏前的日志…...

数据结构 二叉树 力扣例题AC——代码以及思路记录

LCR 175. 计算二叉树的深 某公司架构以二叉树形式记录&#xff0c;请返回该公司的层级数。 AC int calculateDepth(struct TreeNode* root) {if (root NULL){return 0;}else{return 1 fmax(calculateDepth(root->left), calculateDepth(root->right));} } 代码思路 …...

Android 11系统启动流程

在Android 11系统启动流程中&#xff0c;系统启动主要经历了以下几个阶段&#xff1a; 引导加载程序&#xff08;Bootloader&#xff09;启动&#xff1a; 当设备加电后&#xff0c;首先运行的是ROM Bootloader&#xff0c;它负责验证操作系统映像的完整性、初始化基本硬件并加…...

python 爬取杭州小区挂牌均价

下载chrome驱动 通过chrome浏览器的 设置-帮助-关于Google Chrome 查看你所使用的Chrome版本 驱动可以从这两个地方找: 【推荐】https://storage.googleapis.com/chrome-for-testing-publichttp://npm.taobao.org/mirrors/chromedriver import zipfile import os import r…...

数据可视化-ECharts Html项目实战(3)

在之前的文章中&#xff0c;我们学习了如何创建堆积折线图&#xff0c;饼图以及较难的瀑布图并更改图标标题。想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下你宝贵的点赞&#xff0c;谢谢。 …...

【理解机器学习算法】之Clustering算法(K-Means)

实现 K-means 聚类从零开始涉及几个关键步骤&#xff1a;初始化质心、将点分配给最近的质心、根据分配更新质心&#xff0c;以及重复这个过程直到收敛。这里是一个基本的 Python 实现&#xff1a; K-means 算法步骤&#xff1a; 初始化质心&#xff1a;从数据点中随机选择 k …...

Transformer的前世今生 day02(神经网络语言模型、词向量)

神经网络语言模型 使用神经网络的方法&#xff0c;去完成语言模型的两个问题&#xff0c;下图为两层感知机的神经网络语言模型&#xff1a; 假设词典V内有五个词&#xff1a;“判断”、“这个”、“词”、“的”、“词性”&#xff0c;且要输出P(w_next | “判断”、“这个”、…...

【Linux】多线程编程基础

&#x1f4bb;文章目录 &#x1f4c4;前言&#x1f33a;linux线程基础线程的概念线程的优缺点线程与进程的区别 线程的创建 &#x1f33b;linux线程冲突概念互斥锁函数介绍加锁的缺点 &#x1f4d3;总结 &#x1f4c4;前言 无论你是否为程序员&#xff0c;相信多线程这个词汇应…...

【地图】腾讯地图 - InfoWindow 自定义信息窗口内容时,内容 html 嵌套混乱问题

目录 需求描述问题问题代码页面展示 解决原因解决办法解决代码页面展示 代码汇总注 需求描述 腾讯地图上画点位&#xff0c;点击点位展示弹框信息 问题 问题代码 // 打开弹框 openInfoWindow(position, content) {this.infoWindow new TMap.InfoWindow({map: this.map,posit…...

Vue3、element-plus和Vue2、elementUI的一些转换

插槽 Vue3<template #default"scope"></template> <template #footer></template>Vue2<template slot-scope"scope"></template> <template slot"footer"></template>JS定义 Vue3 <script…...

Go语言gin框架中加载html/css/js等静态资源

Gin框架没有内置静态文件服务&#xff0c;但可以使用gin.Static或gin.StaticFS中间件来提供静态文件服务。 效果图如下&#xff1a; 一、gin 框架加载 Html 模板文件的方法 方式1&#xff1a;加载单个或多个html文件&#xff0c;需要指明具体文件名 r.LoadHTMLFiles("vie…...

#鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行

3 月 19 日&#xff0c;#鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行。 现场&#xff0c;深圳市南山区人民政府副区长李志娜发布《2024 年南山区支持鸿蒙原生应用发展首批政策措施清单》&#xff0c;从加强鸿蒙原生应用供给能力、推动鸿蒙原生应用产业集聚、完善鸿蒙原生…...

flask 继续学习

group_by group_by是一种在数据库查询或数据处理中常用的操作&#xff0c;它用于将数据按照指定的列进行分组。通过group_by操作&#xff0c;可以将数据集按照某个列的值进行分类&#xff0c;然后对每个分类进行聚合计算或其他操作。 在SQL语言中&#xff0c;group_by通常与聚…...

DockerFile遇到的坑

CMD 命令的坑 dockerfile 中的 CMD 命令在docker run -it 不会执行 CMD 命令。 FROM golang WORKDIR / COPY . ./All-in-one CMD ["/bin/sh","-c","touch /kkk.txt && ls -la"] RUN echo alias ll"ls -la" > ~/.bashrc(不…...

别再只调AE了!深入理解ISP 3A算法联动:以高通平台AEC如何影响AF与AWB为例

深入解析ISP 3A算法联动机制&#xff1a;从参数传递到系统级优化 在图像信号处理&#xff08;ISP&#xff09;的复杂世界中&#xff0c;3A算法&#xff08;自动曝光控制AEC、自动对焦AF、自动白平衡AWB&#xff09;常被视为独立运行的模块。然而&#xff0c;当我们将视角从单点…...

告别模糊图像:html-to-image 像素比率(Pixel Ratio)完全控制指南

告别模糊图像&#xff1a;html-to-image 像素比率&#xff08;Pixel Ratio&#xff09;完全控制指南 【免费下载链接】html-to-image ✂️ Generates an image from a DOM node using HTML5 canvas and SVG. 项目地址: https://gitcode.com/gh_mirrors/ht/html-to-image …...

办公自动化必备!MinerU智能文档理解镜像实战:提升文档处理效率10倍

办公自动化必备&#xff01;MinerU智能文档理解镜像实战&#xff1a;提升文档处理效率10倍 1. 引言&#xff1a;文档处理的效率革命 每天早晨&#xff0c;财务部门的李经理都要面对堆积如山的发票和报表。传统的人工录入方式不仅耗时费力&#xff0c;还容易出错。类似的情况也…...

PhotoshopCClinux部署实战:企业环境批量安装的10个最佳实践技巧

PhotoshopCClinux部署实战&#xff1a;企业环境批量安装的10个最佳实践技巧 【免费下载链接】photoshopCClinux Photoshop CC v19 installer for Gnu/Linux 项目地址: https://gitcode.com/gh_mirrors/ph/photoshopCClinux 在企业环境中高效部署Photoshop CC v19到多台L…...

Zotero PDF预览插件:告别窗口切换,让文献管理效率提升300%

Zotero PDF预览插件&#xff1a;告别窗口切换&#xff0c;让文献管理效率提升300% 【免费下载链接】zotero-pdf-preview Preview Zotero attachments in the library view. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-pdf-preview 你是否曾在文献海洋中迷失方…...

Heygem数字人系统在教育培训场景的应用:快速生成多讲师教学视频

Heygem数字人系统在教育培训场景的应用&#xff1a;快速生成多讲师教学视频 1. 教育培训行业的视频制作痛点 教育培训机构在制作教学视频时常常面临以下挑战&#xff1a; 讲师资源有限&#xff1a;优秀讲师时间宝贵&#xff0c;难以满足大量课程录制需求制作成本高昂&#x…...

AI开发-python-langchain框架(--并行流程 )耪

如果有多个供应商&#xff0c;你也可以使用 [[CC-Switch]] 来可视化管理这些API key&#xff0c;以及claude code 的skills。 # 多平台安装指令 curl -fsSL https://claude.ai/install.sh | bash ## Claude Code 配置 GLM Coding Plan curl -O "https://cdn.bigmodel.cn/i…...

小白必看:Qwen3-ASR-0.6B语音识别镜像开箱即用教程

小白必看&#xff1a;Qwen3-ASR-0.6B语音识别镜像开箱即用教程 你是不是经常遇到这样的场景&#xff1a;开会录音需要整理成文字、外语视频需要字幕、或者想给一段语音快速生成文字稿&#xff1f;手动转写不仅耗时耗力&#xff0c;还容易出错。今天我要给你介绍一个超级好用的…...

百考通:AI精准赋能答辩PPT,让零散的想法智能生成为结构化内容

毕业季、开题季&#xff0c;一份专业出彩的PPT是顺利通过答辩的关键。但从论文中提炼核心观点、规划答辩逻辑、设计美观版式&#xff0c;往往让学生们焦头烂额。百考通&#xff08;https://www.baikaotongai.com&#xff09; 凭借AI技术深度赋能&#xff0c;打造出一站式答辩PP…...

Coze实战:除了喂文档,如何让你的AI助手‘看懂’网页和图片?保姆级教程来了

Coze进阶实战&#xff1a;解锁网页解析与图片识别的AI助手高阶玩法 当大多数用户还在用文档投喂AI助手时&#xff0c;前沿玩家已经让智能体掌握了"看网页"和"识图"的超能力。这就像给AI装上了望远镜和显微镜——不仅能消化静态知识&#xff0c;还能实时捕捉…...