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

【用 Java API Client 操作 Elasticsearch】

一篇搞懂用 Java API Client 操作 Elasticsearch超详细 通俗易懂大家好这篇文章我们来从0开始讲清楚如何用Java API Client操作 Elasticsearch。一、什么是 Java API Client在 Elasticsearch 8.x 之后官方推荐使用Java API Clientco.elastic.clients替代旧的RestHighLevelClient已经被废弃它的特点是✅ 类型安全强类型不再是字符串拼JSON✅ API更现代✅ 和ES版本强绑定二、环境准备1️⃣ Maven 依赖dependencies!-- Elasticsearch Java API Client --dependencygroupIdco.elastic.clients/groupIdartifactIdelasticsearch-java/artifactIdversion8.12.0/version/dependency!-- 低级客户端 --dependencygroupIdorg.elasticsearch.client/groupIdartifactIdelasticsearch-rest-client/artifactIdversion8.12.0/version/dependency!-- JSON 处理 --dependencygroupIdjakarta.json/groupIdartifactIdjakarta.json-api/artifactIdversion2.0.1/version/dependency/dependencies2️⃣ 创建客户端这是所有操作的基础必须掌握。RestClientrestClientRestClient.builder(newHttpHost(localhost,9200)).build();ElasticsearchTransporttransportnewRestClientTransport(restClient,newJacksonJsonpMapper());ElasticsearchClientclientnewElasticsearchClient(transport); 一句话理解RestClient负责HTTP通信Transport负责数据转换Client我们真正用的API三、索引操作Index1️⃣ 创建索引client.indices().create(c-c.index(user_index));2️⃣ 删除索引client.indices().delete(d-d.index(user_index));3️⃣ 判断索引是否存在Booleanexistsclient.indices().exists(e-e.index(user_index)).value();System.out.println(exists);四、文档操作CRUD我们定义一个实体类classUser{publicStringname;publicintage;}1️⃣ 插入文档CreateUserusernewUser();user.name张三;user.age20;client.index(i-i.index(user_index).id(1).document(user));2️⃣ 查询文档ReadGetResponseUserresponseclient.get(g-g.index(user_index).id(1),User.class);Useruserresponse.source();System.out.println(user.name);3️⃣ 更新文档Updateclient.update(u-u.index(user_index).id(1).doc(newUser(){{age25;}}),User.class);4️⃣ 删除文档Deleteclient.delete(d-d.index(user_index).id(1));五、查询操作重点1️⃣ match 查询全文检索SearchResponseUserresponseclient.search(s-s.index(user_index).query(q-q.match(m-m.field(name).query(张三))),User.class);2️⃣ term 查询精确匹配.query(q-q.term(t-t.field(age).value(25)))3️⃣ 范围查询range.query(q-q.range(r-r.field(age).gte(JsonData.of(20)).lte(JsonData.of(30))))4️⃣ bool 查询组合查询.query(q-q.bool(b-b.must(m-m.match(mm-mm.field(name).query(张三))).filter(f-f.range(r-r.field(age).gte(JsonData.of(20)))))) 理解must必须满足参与评分filter过滤不参与评分更快5️⃣ 解析结果for(HitUserhit:response.hits().hits()){Useruserhit.source();System.out.println(user.name user.age);}六、分页查询SearchResponseUserresponseclient.search(s-s.index(user_index).from(0)// 起始位置.size(10)// 每页数量.query(q-q.match(m-m.field(name).query(张三))),User.class);七、排序.sort(s-s.field(f-f.field(age).order(SortOrder.Desc)))八、一个完整小案例推荐直接跑publicstaticvoidmain(String[]args)throwsException{ElasticsearchClientclientcreateClient();// 1. 创建索引client.indices().create(c-c.index(user_index));// 2. 插入数据UserusernewUser();user.name李四;user.age30;client.index(i-i.index(user_index).id(1).document(user));// 3. 查询SearchResponseUserresponseclient.search(s-s.index(user_index).query(q-q.match(m-m.field(name).query(李四))),User.class);// 4. 输出for(HitUserhit:response.hits().hits()){System.out.println(hit.source().name);}}九、常见坑一定要看⚠️❌ 1. 版本不一致Java Client 和 ES 服务端版本必须接近❌ 2. 字段类型问题text → 不能 term 查询keyword → 才能精确匹配❌ 3. JSON 转换问题推荐使用 JacksonJsonpMapper❌ 4. 中文查询问题需要分词器ik分词器等十、总结一句话总结 Java API Client 更安全、更优雅的ES操作方式

相关文章:

【用 Java API Client 操作 Elasticsearch】

🚀 一篇搞懂:用 Java API Client 操作 Elasticsearch(超详细 通俗易懂) 大家好,这篇文章我们来从 0开始讲清楚:如何用 Java API Client 操作 Elasticsearch。 一、什么是 Java API Client? 在 …...

SL3075 国产兼容 TPS54560 4.5–65V宽压 5A 同步降压 ESOP8 封装

在电源芯片选型时,宽输入电压、大输出电流、高可靠性往往是工程师最关注的三个核心指标。森利威尔推出的 SL3075 是一款4.5V-65V宽输入电压、5A输出电流的异步降压转换器,采用ESOP8封装,非常适合那些对电压波动范围要求宽、对带载能力要求高的…...

场景新叙事|小红书发布男装春上新场景趋势

春日渐暖,衣橱焕新。在小红书,男装消费决策的锚点从过去单一的审美偏好,逐渐向涵盖工作、休闲、运动及社交等维度的多元生活全景偏移。男性用户在选购穿搭服饰时,不仅是在挑选一件好看的衣服,更是在寻找一套能完美嵌入…...

OpenClaw 入门:一文搞懂 Skill 是什么、有什么用、与 Agent 有何区别

OpenClaw 作为开源AI交互框架,核心是「技能化调度」,而 Skill(技能)是其最小功能单元。很多新手入门时会混淆 Skill 与 Agent,本文用最简约的语言,讲清 Skill 的核心逻辑、作用、与 Agent 的区别&#xff0…...

AI海报生成工具完全指南——2026年电商运营必备平台推荐

在电商竞争日趋白热化的今天,一张高质量营销海报往往是品牌与消费者的第一触点。传统海报依赖设计师、外包公司,成本高、周期长;而以潮际好麦为代表的AI海报生成平台,正在彻底改变这一格局。什么是AI海报生成?AI海报生…...

注塑厂批次色差真相:福尔蒂工艺映射法实现ΔE<3量产稳定

最近有位做汽车内饰件的朋友跟我聊起一个很实际的问题:同一批订单,不同机台打出来的注塑件颜色总有点微妙差别,客户拿色卡一比,ΔE值动不动就超5,返工重做成了常态。他问我:“是不是原料母粒本身就不稳&…...

LangChain的数据检索

LangChain的数据检索LangChain为RAG应用程序提供了从简单到复杂的所有构建块,例如数据的获取、切分、向量化、向量存储、向量检索等模块文档加载模板LangChain封装了一系列类型的文档加载模块,例如PDF、CSV、HTML、JSON、Markdown、File Directory等。下…...

【RocketMQ】底层架构核心流程

1、基本概念 Producer(生产者) 负责“发送消息”的应用。 Consumer(消费者) 负责“消费消息”的应用。 Broker 真正存储消息、处理请求的服务器进程。Producer 和 Consumer 最终都是通过网络直接跟 Broker 打交道(RPC&…...

[特殊字符]豆瓣高分书单|闭眼入的人生必读书单✨

🔥 封神级必看(评分≥9.3)这些书是无数人心中的白月光,读完能改变你看世界的角度《活着》9.4|余华用最朴素的文字写尽生命的重量,哭着看完也笑着成长《1984》9.4|反乌托邦神作,看完后…...

人大与加拿大女王大学金融硕士:带你重返学术殿堂,找回那份久违的专注与幸福

在快节奏的时代洪流中,我们似乎总在赶路,却鲜少停下脚步审视内心。作为金融职场人,你或许早已习惯了 KPI 的催促、会议的琐碎与数据的轰炸,却在某个深夜突然意识到,那份对知识的渴望、对学术的敬畏,正被日复…...

Rocky Linux Docker Compose + 容器化LNMP部署完全指南

一、方案概述 1. 架构说明 本方案基于Docker容器化技术部署LNMP栈(Nginx + MariaDB + PHP-FPM),相比传统RPM部署,具有环境一致性高、迁移便捷、版本切换灵活、资源隔离度高的优势,适合多环境统一部署、多站点管理的场景。 所有组件均采用官方稳定版镜像,无需手动编译配…...

如何让ChatGPT、Gemini、Claude等海外AI大模型推荐你的公司品牌?附海外GEO指南|徐礼昭

要让海外AI大模型(ChatGPT、Gemini、Claude、Perplexity 等)主动推荐你的公司,核心是做GEO(生成式引擎优化):把公司打造成 AI 可识别、可信任、可引用的权威实体,并在其训练与实时检索&#xff…...

关于JS中比较运算符和关系运算符的隐式转换分析

比较运算符()隐式类型转换的核心规则当 两边类型不同时,会按照以下优先级进行转换(可以想象成一个“决斗擂台”,一步步把双方变成同一种类型再比):布尔值 → 数字true 变成 1,false…...

读书笔记:家庭和学校的无障碍环境改造

《家庭和学校的无障碍环境改造》 [美]维克布伦南 弗洛派克 丹尼斯洛利 著 周蔺 译 ISBN 978-7-5224-1182-8整理低视力环境改造与交流核心要点操作清单如下:一、环境改造基础原则高对比度优先:物体与背景形成鲜明对比(如白底黑字、深色物体…...

2026食字号男士滋补品代工厂推荐

# 2026食字号男士滋补品代工厂推荐2026年国内男士滋补消费持续升级,品牌方推出食字号男士滋补品,代工选择直接决定产品竞争力。行业内多数代工厂仅能提供基础代工服务,无法解决产品差异化、吸收效率、合规安全等核心痛点,选对具备…...

2026 Reddit养号指南:新账号如何安全养号并快速提升Karma

在2026年,Reddit 依然是获取流量、参与社区讨论和内容分发的重要平台。但对于刚注册的新账号来说,很多人都会遇到同样的问题:发帖被删除、评论无曝光、甚至账号被限制或 Shadowban。本文将围绕“Reddit养号”核心关键词,讲清楚新账…...

50 个 CTF 实战解题核心思路,选手必藏!吃透这篇就够了!

CTF选手必藏的50个实战解题思路!一篇够用! CTF竞赛的核心逻辑 • 核心目标:快速拆解问题(Flag导向)、工具链协作、模式化思维。• 关键原则:先广度后深度(优先收集信息)、分治策略&…...

竹云盘搜:百万级网盘资源一键搜索,免费无广告的宝藏平台

在数字内容爆炸的时代,找到想要的影视资源往往需要花费大量时间在各个平台间辗转。今天,我要向大家推荐一个真正实用的宝藏网站——竹云盘搜(https://www.zhuyunso.top)。什么是竹云盘搜?竹云盘搜是一个专注于夸克网盘…...

sdut-程序设计基础Ⅰ-23级转专业第一次机测题

7-1 猴子吃桃分数 5作者 杨鑫单位 大连理工大学猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。 到第…...

4G站点板卡故障导致同步终止与小区不可用处理案例

板卡隐性故障案例分享如下:LTE站点上报告警:连续几日上同步终止、小区不可用告警,反复出现。网管查询:可以远程登站,但执行指令反映非常慢,1条指令反馈需要几分钟,甚至出现Time out。站点显示状…...

游戏数据助力配送机器人升级

3月17日消息,Niantic Spatial与Coco Robotics达成合作,将用《Pokmon Go》等游戏积累的地理空间数据训练城市配送机器人,引发数据用途新关注。合作背景《Pokmon Go》运营权虽在2025年移交Scopely,但Niantic此前收集的视觉数据成了提…...

排序(二)【数据结构】

简单选择排序(选择排序 不稳定) 核心思想: 每一趟找到待排序序列中最小的值,以及找到待排序序列的第一个值进行交换 (即 每一趟就是找到待排序序列中的最小值,通过交换的方式放到第一个位置上) …...

计算机毕业设计springboot基于Vue框架的智能教研系统的设计与实现 基于SpringBoot与Vue3的数字化教学研究协同平台 前后端分离架构下的智慧教育教研管理系统

计算机毕业设计springboot基于Vue框架的智能教研系统的设计与实现(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。教育信息化浪潮正深刻重塑传统教学研究模式。长期以来&#xff…...

爬虫对抗:ZLibrary反爬机制实战分析技术文章大纲

爬虫对抗:ZLibrary反爬机制实战分析技术文章大纲爬虫与反爬虫概述爬虫技术的基本原理与应用场景反爬虫机制的必要性与常见手段ZLibrary作为典型案例的背景介绍ZLibrary的反爬机制分析IP限制与封禁策略请求频率检测与验证码挑战动态页面渲染与JavaScript加密用户行为…...

6款产品脑图白板工具推荐

在产品经理的日常工作中,最让人头疼的往往不是想创意,而是 如何把零散的需求整理清楚。新项目启动、功能迭代,或者产品方案汇报时,一旦需求点变多,思路就很容易变得混乱。有的人习惯在纸上画草图,有的人用P…...

深耕云南17年|云南云服务器哪家好?蓝队云用实力说话

深耕一个领域17年,是实力的证明,更是口碑的沉淀。在云南云计算行业,蓝队云扎根本土17年,服务60000企业用户,用过硬的实力和优质的服务,成为云南云服务器领域的标杆品牌,也给出了“云南云服务器哪…...

基于准拉格朗日的UVMS的Matlab刚体动力学建模与响应分析

UVMS 刚性关节动力学复现工程说明 基于准拉格朗日的UVMS的刚体动力学建模 基于论文复现的Matlab仿真学习资料,代码结构清晰,且逐行注释代码,保证小白能学懂。 讨论UVMS的动态响应:干扰、耦合和对末端执行器定位的影响学习。 非常适合想了解动力学建模的同学学习。 原代码在…...

答辩现场系统跑不起来?这份演示环境准备清单救了我(附一键部署脚本)

计算机毕设答辩演示环境准备完全指南:本地部署、云服务器与Docker容器化方案对比 一、问题:为什么演示环境是答辩的"隐形杀手"? 每年答辩季,总有同学因为演示环境出问题而手忙脚乱: 本地环境依赖混乱&…...

Java企业AI转型的专属解决方案:技术栈融合与服务重塑

在大模型技术深度渗透企业级开发的当下,Java作为企业系统的主流技术栈,正面临着AI能力接入、传统架构智能化升级的核心需求。对于Java企业而言,AI转型并非颠覆现有技术体系,而是实现大模型与Java生态的深度融合,完成从…...

终于等到你!黑金云课堂 FPGA 免费直播课来了!

...