首页/新闻资讯/正文详情

Elasticsearch核心概念

发布时间:2026/9/26 5:09:36 来源:云帆数科 栏目:资讯中心
Elasticsearch核心概念
Elasticsearch简称 ES是一个分布式、近实时的全文检索与搜索引擎底层基于 Apache Lucene 开发使用 Java 编写。对外提供 RESTful HTTP API用 JSON 交互天然支持集群、分片、副本很容易水平扩容。一、集群 节点1、Cluster 集群一组 ES 节点名字相同自动组成集群对外提供统一服务自动分片、故障转移。2、Node 节点单个 ES 进程节点有角色Master-eligible 主候选节点负责选主、维护集群元数据分片分配、mapping、索引信息不存业务数据Data 数据节点存放分片负责读写、检索、聚合业务压力主要在这里Coordinating 协调节点接收客户端请求路由分片聚合分片返回结果相当于网关生产一般拆角色单机开发节点同时兼任多个角色。二、索引、文档、字段、Mapping对比mysql:MySQLESTableIndex索引RowDocument文档ColumnField字段SchemaMapping映射Index 索引逻辑数据集存放一类文档商品、日志。7.x 之后彻底移除 Type一个 Index 只有一个虚拟 type_doc。Document 文档ES 最小数据单元JSON 格式唯一标识_id。Field 字段文档里 KV 中的 key每个字段有类型text分词用于搜索、keyword不分词精确匹配、聚合、排序、long、date等。Mapping 映射定义索引里面字段类型、分词器、是否存储、是否建索引。动态 mapping写入 JSON 自动推断字段类型开发方便生产慎用容易类型错乱静态 mapping提前手动定义生产推荐Analyzer 分词器针对 text 字段把文本切分成词项 term。由三部分字符过滤器 → 分词器 → 词项过滤器小写、停用词。中文常用ik。三、分片 ShardPrimary Shard 主分片索引创建时指定一旦创建不能修改数量只能 split/shrink 重建索引。文档通过hash(_id) % 主分片数路由到对应主分片Elastic。写入先写主分片主分片成功后同步到副本。Replica Shard 副本分片主分片的拷贝。作用故障容灾 分担读请求压力。副本不能和主分片放在同一个节点。副本数量可以随时动态调整。公式hash(routing) % number_of_primary_shardsrouting 默认是_id。四、Lucene 底层核心Segment 段Shard 内部由多个不可变的 Segment 组成。Segment 一旦写入磁盘永远不修改。更新文档旧文档标记删除新增文档写入新 segment删除文档只是打删除标记不会立刻删磁盘文件段合并 Segment Merge后台线程把多个小 segment 合并成大 segment清理已删除文档会消耗大量 CPU、IO生产重点优化点Inverted Index 倒排索引ES 检索核心MySQL 是【文档 → 词】的正向索引倒排是词 Term → 文档列表Posting List。Term分词后的单词Posting List包含这个词的文档 ID、词频、位置短语搜索。搜索时直接查 term快速找到匹配文档实现全文检索。近实时 NRTNear Real-TimeES 不是实时写入可见。写入文档先放到内存 bufferrefresh把 buffer 生成新 segment 写入文件缓存不是磁盘文档此时可搜索。默认 refresh_interval1s。所以写入后最多等 1 秒才能搜到。flush把 segment 刷到磁盘持久化生成 commit point。五、查询相关概念Query FilterQuery打分BM25 相关性算匹配度结果按相关性排序会做缓存。如 match 全文搜索。Filter只判断是否匹配不打分可缓存性能更高。如 term、range。BM25ES 默认相关性打分算法用来计算文档和搜索词的匹配分数决定结果排序。DSLES 查询语法JSON 格式分为叶子查询match/term、复合查询bool/must/should/must_not/filter。Alias 索引别名给索引起别名一个别名可以指向多个索引。用于零停机重建索引双写切换日志场景滚动索引。Data Stream 数据流ES7.9专门给日志这类追加写入、带时间戳场景自动管理滚动的 backing index不用手动维护别名。

相关推荐

App中实现AI对话功能的完整实操指南与避坑经验
App中实现AI对话功能的完整实操指南与避坑经验

1. 项目背景:AI对话从加分项变成了入场券2025年这个时间点,我敢把话说在前面:一个没有AI对话能力的App,在应用商店里的竞争力已经明显吃亏了。不管你做的是工具类、教育类、内容类还是电商类产品,用户可能不关心你的UI… · 2026/9/26 5:09:30

多角色业务系统权限设计与安全优化:RBAC、JWT与防越权实战
多角色业务系统权限设计与安全优化:RBAC、JWT与防越权实战

我接手的这个企业招聘系统,最初看需求并不复杂:发布职位、投递简历、安排面试、录入评价,标准的Spring Boot CRUD项目。但需求方跑通一轮完整流程后,连问了几个问题:面试官能不能只看到分配给自己的候选人?… · 2026/9/26 5:09:30

教材源码运行指南:HTML+CSS+JavaScript项目实战与避坑
教材源码运行指南:HTML+CSS+JavaScript项目实战与避坑

简介:这份源代码压缩包对应《网页设计与制作项目教程(HTMLCSSJavaScript)》,面向网页设计初学者与前端入门学习者,帮助读者通过教材实例与练习掌握HTML、CSS、JavaScript三大核心技术,解决从静态页面结构搭… · 2026/9/26 5:09:30

CDISC学习之SDTMIG 3.2版本:用TaoToken统一Key跑通域模型变量校验
CDISC学习之SDTMIG 3.2版本:用TaoToken统一Key跑通域模型变量校验

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 11:24:14

gcc 类似的编译器有哪些?TaoToken 统一 Key 接入 Clang/LLVM/TinyCC 配置骨架
gcc 类似的编译器有哪些?TaoToken 统一 Key 接入 Clang/LLVM/TinyCC 配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 11:24:14

Cursor 深度使用心得:用 TaoToken 统一 Key 打通 AI 编程工作流
Cursor 深度使用心得:用 TaoToken 统一 Key 打通 AI 编程工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 11:24:14

Model Context Protocol (MCP) 技术原理与项目实战:用 TaoToken 统一 Key 打通 Cline 配置
Model Context Protocol (MCP) 技术原理与项目实战:用 TaoToken 统一 Key 打通 Cline 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 11:24:07

如何编写Skill:用TaoToken统一Key接入Claude Code与Cursor的SKILL.md配置指南
如何编写Skill:用TaoToken统一Key接入Claude Code与Cursor的SKILL.md配置指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 11:24:07

push declined due to email privacy restrictions 解决方法:TaoToken 统一 Key 通道下的 git user.email 配置排查
push declined due to email privacy restrictions 解决方法:TaoToken 统一 Key 通道下的 git user.email 配置排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 11:24:07

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21

OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40

向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践

一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码