news 2026/6/10 13:16:10

Elasticsearch (ES) 核心笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Elasticsearch (ES) 核心笔记
1. 整体概念:ES vs MySQL
概念MySQLElasticsearch理解
库/表Database/TableIndex (索引)相当于一个大文件夹。
RowDocument (文档)相当于文件夹里的一张卡片(JSON格式)。
字段ColumnField卡片上的具体信息。
  • 一个索引包含多个文档
  • 一个文档一个 JSON 对象
  • 这个 JSON 对象里可以包含多个字段,字段的值可以是字符串、数字,也可以是嵌套的子对象
2. 核心特性
  • 一个索引只对应一种类型
    • 现状:ES 7.x+ 已移除 Type 概念。一个索引只能存一种结构的文档。
    • 原因:底层 Lucene 引擎要求字段类型统一(比如status要么全是字符串,要么全是数字),避免冲突和性能浪费。
    • 实践:人员档案存profile_index,案件存case_index,互不干扰。
  • 文档是 JSON
    • 支持复杂结构,如数组group_ids: ["1", "2"]),这是 ES 处理多值数据的杀手锏。
3. 为什么使用 Script(脚本)?

在 Java 代码中拼接字符串执行脚本,是为了原子性更新

  • 痛点:如果先查出来 -> 改 -> 写回去,高并发下容易造成数据覆盖(丢数据)。
  • 方案:把“修改逻辑”发给 ES,让 ES 在服务端内存里直接改。
  • 好处线程安全(不会丢数据)、性能高(数据不用在网络间传输)。
4. Script 脚本参数详解

new Script(type, lang, code, params)中:

  1. type:脚本类型。
    • inline(默认):代码写在请求里(最常用)。
    • stored:代码预存于 ES,这里传 ID。
  2. lang:脚本语言。
    • painless(默认):ES 专用语言,安全高效。
  3. code:脚本代码(字符串)。
    • 真正的逻辑,如ctx._source.age += 1
  4. params:外部参数(Map)。
    • 用来把 Java 里的变量(如groupId)传进脚本里,在脚本中通过params.xxx访问。
5. 脚本中的核心变量ctx
  • ctx:固定写法,代表“上下文”。
  • ctx._source:最常用,代表当前文档的 JSON 数据
    • 读取ctx._source['name']
    • 修改ctx._source['group_id'] = 新值

终极总结

ES 是存 JSON 的,一个索引只存一种卡。为了改数据不丢,逻辑发给 ES 自己跑(Script),ctx代表卡,params传参数。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 18:33:57

实测Qwen3Guard-Gen-WEB的反讽识别能力,结果令人惊喜

实测Qwen3Guard-Gen-WEB的反讽识别能力,结果令人惊喜 在内容安全审核的实际落地中,最棘手的从来不是明令禁止的敏感词——而是那些裹着糖衣的刺、披着赞美外衣的批评、用“高明”“厉害”“真棒”包装的尖锐质疑。这类表达不触发关键词规则,…

作者头像 李华
网站建设 2026/6/6 1:55:13

零基础教程:用ccmusic-database/music_genre一键部署音乐分类器

零基础教程:用ccmusic-database/music_genre一键部署音乐分类器 你有没有过这样的困惑:听到一首歌,却说不准它属于什么流派?是爵士还是蓝调?是电子还是世界音乐?又或者,你正在做音乐平台的内容…

作者头像 李华
网站建设 2026/6/10 12:47:00

通义千问2.5-7B-Instruct实战体验:结构化数据处理效果超预期

通义千问2.5-7B-Instruct实战体验:结构化数据处理效果超预期 1. 为什么这次测试让我重新认识了“表格理解”能力 上周部署完这个镜像后,我随手扔进去一个电商后台导出的CSV——32列、1.7万行、混着中文商品名、英文SKU、价格区间、库存状态和模糊的促销…

作者头像 李华
网站建设 2026/6/10 8:21:18

Gofile下载器技术探索指南:从场景痛点到高级应用

Gofile下载器技术探索指南:从场景痛点到高级应用 【免费下载链接】gofile-downloader Download files from https://gofile.io 项目地址: https://gitcode.com/gh_mirrors/go/gofile-downloader 场景化部署指南:跨越环境障碍的配置方案 环境兼容…

作者头像 李华
网站建设 2026/5/25 12:10:02

保姆级教程:用SDPose-Wholebody实现多人姿态估计与可视化

保姆级教程:用SDPose-Wholebody实现多人姿态估计与可视化 你是否试过在一张拥挤的演唱会照片里,准确识别出每个人的手臂摆动角度?或者想快速分析一段健身视频中多人的动作规范性,却卡在传统姿态估计算法对遮挡和小目标的无力应对…

作者头像 李华