news 2026/3/2 0:58:12

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/2/23 6:11:43

Gofile下载工具:重构文件下载效率的全维度方案

Gofile下载工具:重构文件下载效率的全维度方案 【免费下载链接】gofile-downloader Download files from https://gofile.io 项目地址: https://gitcode.com/gh_mirrors/go/gofile-downloader Gofile下载工具是一款针对Gofile.io平台优化的专业下载解决方案&…

作者头像 李华
网站建设 2026/2/26 23:19:37

AI动画新体验:ANIMATEDIFF PRO一键生成高清动态视频

AI动画新体验:ANIMATEDIFF PRO一键生成高清动态视频 提醒:读完本文,你可能会把压箱底的数位板收进抽屉,然后盯着显卡风扇转速曲线发呆。 副作用包括:凌晨两点还在调“风速参数”,对“帧间连贯性”产生条件反…

作者头像 李华
网站建设 2026/3/1 12:10:29

告别插件部署烦恼:网易云音乐插件部署工具全攻略

告别插件部署烦恼:网易云音乐插件部署工具全攻略 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer BetterNCM Installer是网易云音乐客户端的专业插件部署工具,提…

作者头像 李华
网站建设 2026/2/27 3:09:46

SiameseUIE快速部署:开箱即用镜像实现中文实体抽取零配置

SiameseUIE快速部署:开箱即用镜像实现中文实体抽取零配置 你是不是也遇到过这样的问题:想试试一个信息抽取模型,结果光装环境就折腾半天?pip install 一堆包,版本冲突报错不断,系统盘空间告急,…

作者头像 李华
网站建设 2026/2/24 21:18:20

Qwen3-Embedding-4B多语言检索实战:119语种bitext挖掘部署教程

Qwen3-Embedding-4B多语言检索实战:119语种bitext挖掘部署教程 你是否遇到过这些场景? 手里有几十万条中英双语网页片段,但无法自动识别哪些是真正对齐的平行句对(bitext);需要从上百种语言的新闻、法律文…

作者头像 李华
网站建设 2026/2/28 10:10:46

5大网盘提速方案深度横评:谁才是破解限速的终极选择?

5大网盘提速方案深度横评:谁才是破解限速的终极选择? 【免费下载链接】Online-disk-direct-link-download-assistant 可以获取网盘文件真实下载地址。基于【网盘直链下载助手】修改(改自6.1.4版本) ,自用,去…

作者头像 李华