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/10 12:35:47

RMBG-2.0 API开发指南:构建图像处理微服务

RMBG-2.0 API开发指南:构建高并发图像处理微服务 1. 引言:为什么需要图像背景去除微服务 在电商平台工作过的开发者都知道,每天要处理成千上万的商品图片。传统做法是设计师用Photoshop一张张抠图,不仅效率低下,成本…

作者头像 李华
网站建设 2026/5/29 8:00:37

LLaVA-v1.6-7b保姆级教程:Ollama模型量化压缩与精度平衡指南

LLaVA-v1.6-7b保姆级教程:Ollama模型量化压缩与精度平衡指南 你是不是也遇到过这样的问题:想在本地跑一个视觉语言模型,但发现LLaVA-v1.6-7b动辄8GB以上的原始模型体积,让普通笔记本直接卡死?显存不够、加载太慢、推理…

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

微博+公众号+抖音一图多发?Qwen-Image-Edit-2511轻松搞定

微博公众号抖音一图多发?Qwen-Image-Edit-2511轻松搞定 你有没有被这样的需求“围追堵截”过? 市场部刚发来一条紧急通知:“新品海报今晚8点全渠道上线,微博封面、公众号头图、抖音竖版预告片三张图,现在就要&#xf…

作者头像 李华
网站建设 2026/6/9 23:45:13

零代码实现自动化数据分析:yfinance效率工具入门指南

零代码实现自动化数据分析:yfinance效率工具入门指南 【免费下载链接】yfinance Download market data from Yahoo! Finances API 项目地址: https://gitcode.com/GitHub_Trending/yf/yfinance 数据分析入门阶段最头疼的是什么?找不到合适的数据源…

作者头像 李华
网站建设 2026/6/10 2:35:34

YOLOE官版镜像部署案例:YOLOE-v8m-seg在智能制造产线缺陷检测落地

YOLOE官版镜像部署案例:YOLOE-v8m-seg在智能制造产线缺陷检测落地 1. 为什么智能制造产线急需YOLOE这样的新模型 传统工业视觉检测系统在产线上跑得越来越吃力。你可能遇到过这些情况:新零件上线要重新标注几百张图、表面划痕和油污识别不准、不同光照…

作者头像 李华