Elasticsearch(ES)核心知识点

Elasticsearch(ES)核心知识点


1. 核心概念

  • Document:文档,一条数据(JSON)
  • Field:字段,文档里的属性
  • Index:索引,相当于数据库的"库/表"
  • Type:类型,7.x 已废弃,一个索引只对应一类数据
  • Shard(分片):索引切分成多个分片,实现分布式存储与并发
  • Replica(副本):分片的备份,保证高可用、提高查询吞吐量
  • Node:节点,一个 ES 实例
  • Cluster:集群,多个节点组成
  • Master Node:主节点,管理集群元数据、分片分配
  • Data Node:数据节点,存储数据、执行查询
  • Coordinating Node:协调节点,接收请求、分发、聚合结果
  • Segment:段文件,底层最小存储单位,不可变
  • Translog:预写日志,防止宕机丢数据

2. 核心架构原理

  • 索引被分为多个 主分片(Primary Shard)
  • 每个主分片有多个 副本分片(Replica)
  • 读写都走主分片,副本可分担查询
  • 分片均匀分布在不同节点,实现水平扩展

3. 写入流程(极简)

  1. 数据先写 内存缓冲区
  2. 同时写 Translog(防止宕机丢失)
  3. 定时 refresh → 生成 segment,可被搜索
  4. 多次 segment 后台 merge 合并
  5. 定时 flush → 数据落盘,清空 Translog

4. 查询流程(极简)

  1. 请求发给协调节点
  2. 分发到对应分片
  3. 各分片返回匹配结果
  4. 协调节点聚合、排序、分页
  5. 返回最终结果

5. 分词(ES 核心能力)

  • 对文本进行切词,用于全文检索
  • 中文必须用:IK 分词器
    • ik_max_word:最细粒度拆分
    • ik_smart:粗粒度拆分

6. 高可用机制

  • 多节点 + 分片副本
  • 某个节点挂掉:
    • 对应分片的副本自动提升为主分片
    • 集群自动 rebalance
  • 无单点故障

7. 数据可靠性(防丢)

  • Translog 保证写入不丢失
  • 副本机制保证硬件故障不丢
  • 底层基于 Lucene,持久化安全

8. 常见查询类型

  • match:全文检索(分词后匹配)
  • term:精确匹配(不分词)
  • match_phrase:短语匹配
  • range:范围查询
  • bool:组合查询(must / should / must_not / filter)
  • aggregation:聚合分析(分组、统计、去重)

9. 深度分页问题

  • from + size 过大会深度翻页,性能极差
  • 解决方案:
    • search_after(推荐,生产用)
    • scroll`(适合大量导出)

10. 写入优化

  • 批量写入:bulk
  • 关闭刷新:加大 refresh_interval
  • 副本数调为 0 后再恢复
  • 合理设置分片数

11. 查询优化

  • 避免 * 前缀模糊查询
  • 使用 filter 代替 query(不算分,缓存友好)
  • 字段设置合理类型(keyword 不分词)
  • 避免大结果集返回
  • 利用路由(routing)定位分片

12. 脑裂问题(老生常谈)

  • 原因:网络问题导致多个节点选主

  • 解决:

    复制代码
    discovery.zen.minimum_master_nodes: (master节点数/2)+1

    新版已内置更好的选举机制,基本不会出现。


13. 典型应用场景

  • 搜索引擎(商城、APP 搜索)
  • 日志分析(ELK)
  • 用户行为分析
  • 地理信息检索(附近的店)
  • 报表聚合统计

14. 一句话背诵版

  • 分片实现分布式,副本实现高可用
  • 写入靠translog防丢,查询靠分词提速
  • 全文检索用match,精确匹配用term
  • 深度分页用search_after
  • 大查询用filter,小结果用must

相关推荐
智慧景区与市集主理人1 小时前
五一乡村文旅增收难?巨有科技大数据双赋能破局突围
大数据·科技
TechubNews5 小时前
新火集团首席经济学家付鹏演讲——2026 年是 Crypto 加入到 FICC 资产配置框架元年
大数据·人工智能
Elastic 中国社区官方博客5 小时前
为 Elastic Cloud Serverless 和 Elasticsearch 引入统一的 API 密钥
大数据·运维·elasticsearch·搜索引擎·云原生·serverless
vastsmile8 小时前
(R)26.04.23 hermes agent执行本地命令超级慢的原因
开发语言·elasticsearch·r语言
CS创新实验室8 小时前
CS实验室行业报告:机器人领域就业分析报告
大数据·人工智能·机器人
老陈头聊SEO10 小时前
生成引擎优化(GEO)为内容创作引入新视角与用户体验提升策略
其他·搜索引擎·seo优化
LinuxGeek102411 小时前
Kylin-Server-V11、openEuler-22.03和openEuler-24.03的MySQL 9.7.0版本正式发布
大数据·mysql·kylin
容智信息12 小时前
国家级算力底座+企业级智能体:容智Agent OS 获选入驻移动云能中心,联手赋能千行百业
大数据·人工智能·自然语言处理·智慧城市
Chuer_12 小时前
讲透财务Agent核心概念,深度拆解财务Agent应用趋势
大数据·数据库·安全·数据分析·甘特图
gushinghsjj12 小时前
什么是主数据管理平台?怎么构建主数据管理平台?
大数据·数据库