Elasticsearch核心数据单元:Document文档详解及存储检索全流程

news2026/5/7 18:15:31
Elasticsearch核心数据单元Document文档详解及存储检索全流程一、前言二、Elasticsearch Document基础定义2.1 什么是 Document 文档2.2 文档核心特点2.3 ES vs MySQL 概念对应三、Document 文档完整结构元数据 业务数据3.1 元数据元信息控制文档行为3.2 标准文档示例四、Elasticsearch 文档存储与检索流程图4.1 文档存储写入流程图4.2 文档检索查询流程图4.3 流程一句话总结五、如何存储写入Document 文档5.1 存储方式1指定 ID 存储推荐5.2 存储方式2自动生成 ID 存储5.3 存储核心规则六、如何检索查询Document 文档6.1 检索方式1根据 ID 精确查询最快6.2 检索方式2全文检索最常用6.3 检索方式3条件过滤查询6.4 检索方式4查询所有文档七、文档核心操作增删改查CRUD实战7.1 创建PUT/POST7.2 查询GET7.3 修改POST 更新7.4 删除DELETE八、Document 文档核心特性8.1 不可变特性8.2 动态映射8.3 支持嵌套文档8.4 高性能检索九、文档存储与检索常见问题避坑9.1 问题1ID 相同会覆盖数据9.2 问题2查询不到数据9.3 问题3写入性能慢十、总结文档核心要点文末总结总结The Begin点点关注收藏不迷路一、前言在 Elasticsearch 面向文档的分布式架构中Document文档是最顶层、最核心、最终存储的数据单元。可以说ES 里一切数据都是文档一切操作围绕文档展开。很多新手不理解文档结构、元数据、存储路由规则导致写入失败、查询不到数据、数据分布不均。本文从文档定义、结构、元数据、存储原理、检索流程、实战命令、流程图全方位讲解让你彻底掌握 ES 文档。二、Elasticsearch Document基础定义2.1 什么是 Document 文档Document文档Elasticsearch 中可被索引、可被搜索的最小数据单元以JSON 格式存储。它相当于 MySQL 数据库中的一行数据Row但比关系型数据更灵活、支持嵌套结构。2.2 文档核心特点JSON 结构轻量、易读、支持嵌套无固定结构不同文档字段可不同动态映射自带唯一标识_id字段被分词、被索引可被快速检索属于索引IndexIndex ≈ 数据库Document ≈ 行2.3 ES vs MySQL 概念对应ElasticsearchMySQLIndex索引Database库Document文档Row行Field字段Column列Mapping映射Schema表结构三、Document 文档完整结构元数据 业务数据一个完整文档分为两部分元数据系统业务数据自定义3.1 元数据元信息控制文档行为_index文档属于哪个索引_id文档唯一 ID主键_source原始 JSON 数据_version版本号并发控制_score搜索相关性评分3.2 标准文档示例{_index:user_index,// 索引_id:1001,// 唯一ID_version:1,// 版本_score:1.0,// 评分_source:{// 真实业务数据name:张三,age:25,city:北京,interest:篮球、游泳}}四、Elasticsearch 文档存储与检索流程图4.1 文档存储写入流程图渲染错误:Mermaid 渲染失败: Parse error on line 3: ... C[路由算法shard hash(_id) % 主分片数]C -- -----------------------^ Expecting SQE, DOUBLECIRCLEEND, PE, -), STADIUMEND, SUBROUTINEEND, PIPE, CYLINDEREND, DIAMOND_STOP, TAGEND, TRAPEND, INVTRAPEND, UNICODE_TEXT, TEXT, TAGSTART, got PS4.2 文档检索查询流程图客户端查询请求协调节点广播到所有分片/指定分片并行检索文档收集所有结果排序/评分/分页返回最终文档4.3 流程一句话总结存储ID 哈希路由 → 主分片写入 → 同步副本检索广播查询 → 并行搜索 → 合并返回五、如何存储写入Document 文档5.1 存储方式1指定 ID 存储推荐PUT /user_index/_doc/1001 { name: 张三, age: 25, city: 北京, create_time: 2025-01-01 }适用订单 ID、用户 ID 有业务主键场景5.2 存储方式2自动生成 ID 存储POST /user_index/_doc { name: 李四, age: 28, city: 上海 }特点ES 自动生成唯一字符串 ID5.3 存储核心规则文档通过_id哈希取模路由分片主分片写入成功才会同步副本写入成功 高可用六、如何检索查询Document 文档6.1 检索方式1根据 ID 精确查询最快GET /user_index/_doc/1001特点直接路由分片毫秒级返回6.2 检索方式2全文检索最常用GET /user_index/_search { query: { match: { name: 张三 } } }6.3 检索方式3条件过滤查询GET /user_index/_search { query: { term: { city: 北京 } } }6.4 检索方式4查询所有文档GET /user_index/_search { query: { match_all: {} } }七、文档核心操作增删改查CRUD实战7.1 创建PUT/POSTPUT /index/_doc/id7.2 查询GETGET /index/_doc/id7.3 修改POST 更新POST /index/_doc/1001/_update { doc: { age: 26 } }7.4 删除DELETEDELETE /index/_doc/1001八、Document 文档核心特性8.1 不可变特性文档写入后不能修改修改 删除旧文档 创建新文档通过_version控制版本8.2 动态映射无需提前定义结构自动识别字段类型字符串/数字/日期8.3 支持嵌套文档{name:张三,address:{province:广东,city:深圳}}8.4 高性能检索基于倒排索引支持分词、模糊、精确、范围、聚合等查询九、文档存储与检索常见问题避坑9.1 问题1ID 相同会覆盖数据原因PUT 相同 ID 会执行更新操作解决使用_create强制新增9.2 问题2查询不到数据原因字段类型错误text/keyword、分词不匹配解决检查 Mapping 类型9.3 问题3写入性能慢原因分片数不合理、副本过多解决合理规划分片十、总结文档核心要点文档是 ES 最小数据单元JSON 格式存储 路由分片 主写副同步检索 广播查询 并行处理 结果合并元数据_id、_index、_source是核心支持 CRUD、全文检索、精确查询文末总结Document 文档是 Elasticsearch 一切功能的基础。理解文档 理解 ES 数据模型。存储依靠路由算法实现分布式检索依靠倒排索引实现高性能所有业务最终都落地为文档的增删改查掌握文档存储与检索你就掌握了 ES 最核心的使用能力。总结Document 定义ES最小数据单元JSON 格式类似数据库行数据文档结构元数据_id/_index/_source 业务字段存储流程协调节点 → 哈希路由 → 主分片写入 → 同步副本检索流程协调节点 → 广播分片 → 并行查询 → 合并结果核心操作PUT写入、GET查询、POST更新、DELETE删除The End点点关注收藏不迷路

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2531529.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…