恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

ElasticSearch 常见用法

  • 首页
  • 资讯中心
  • /
  • ElasticSearch 常见用法

相关资讯

CPU散热器均热板技术深度解析:原理、适用场景与性能实测 2026/8/17 1:25:42
ROS框架在电赛运动控制中的降维打击:从PID到成熟机器人方案 2026/8/17 1:25:42
越华环保集团污水端边云数采架构:适配美丽河湖项目的数字化污水治理全链路设计 2026/8/17 1:25:42

最新资讯

Android 14适配实战:隐私权限、前台服务与兼容性全面解析
OpenHarmony跨平台列表控件交互实现指南
零门槛解锁中文GitHub:GitHub中文界面插件带我告别英文焦虑
基于SpringBoot的校园爱心志愿管理系统的设计与实现(源码+lw+部署文档+讲解等)
WPS/Excel条件格式整行高亮:基于单元格内容的自动化表格美化
C++ new操作符深度解析:从内存分配到智能指针与内存池实战

今日推荐

LabVIEW异步调用实战:从原理到生产者消费者模式,解决界面卡顿与并行处理难题
LabVIEW异步调用实战:解决界面卡顿与并行处理难题
飞书局域网文件传输实战:3种方案实现高速点对点传输

本周热门

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码
【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码
隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

ElasticSearch 常见用法

发布时间:2026/8/17 1:30:42
ElasticSearch 常见用法 一、ElasticSearch 整体介绍1.1 是什么ElasticSearch(简称 ES)是分布式、RESTful 风格的全文搜索引擎,底层基于 Lucene。Lucene:底层检索库,只提供 jar 包,复杂,不支持分布式ES:对 Lucene 封装,提供 HTTP‑REST API、Java 客户端,开箱即用,天然分布式集群。适用场景:全文检索、日志分析(ELK 栈)、商品搜索、APP 检索、日志埋点、数据分析。 不适合:大量实时更新、强事务、高频写入。1.2 ES 核心概念图解(面试必背,可手画)ES7.x 之后:移除 Type,一个索引就对应一个 type,一个索引就是一堆文档plaintext【集群 Cluster】 ├─节点 Node1(主节点/数据节点) │ ├─索引 Index(类比Mysql数据库 database) │ │ ├─分片 Shard(分片,分为主分片primary、副本replica) │ │ │ └─段 Segment(Lucene底层,不可修改) │ │ └─文档 Document(类比mysql row行,json格式) │ │ └─字段 Field(类比mysql column列) ├─节点 Node2 └─节点 Node3表格ES7.x 概念MySQL 类比Cluster 集群数据库实例Index 索引Database 数据库Document 文档Row 一行数据Field 字段Column 列Mapping 映射Table 表结构(字段类型、分词器)Shard 分片分库分表Replica 副本备份⚠️ES7 重要变化:Type 被废弃,一个索引只有一个虚拟_doc类型,不要再写自定义 type主分片数创建索引后不可修改,副本数可以随时修改。1.3 分片原理图解(面试高频)plaintext索引创建:3主分片,1副本,共6个分片 Primary(主分片): P0 P1 P2 Replica(副本): R0 R1 R2 集群3个节点部署: Node1: P0 R1 Node2: P1 R2 Node3: P2 R0 规则: 1. 主分片和它的副本**不能放在同一个节点**(节点宕机,副本失效) 2. 写请求只写到【主分片】,同步复制到副本 3. 读请求:可以读主分片,也可以读副本,负载均衡 4. 主分片数量索引创建完不能修改!只能重建索引迁移数据主分片:数据真实写入,处理写请求;副本分片:备份,分担读压力,主分片挂掉,副本升级为主分片,保证高可用。1.4 倒排索引(核心!面试必考)ES 底层靠倒排索引实现极速全文检索,正排索引就是普通数据库。正排索引(Mysql)文档 ID → 完整内容plaintextdoc1: "小米手机很好用" doc2: "华为手机性价比高" doc3: "小米手机性价比高"倒排索引 ES分词词条 → 关联文档 ID 列表表格Term 词条文档 ID小米doc1,doc3手机doc1,doc2,doc3华为doc2性价比doc2,doc3好用doc1流程:文档写入 ES,经过分词器 Analyzer 拆分成词条 term;构建倒排索引表;查询的时候,把查询语句分词,去倒排索引匹配 term,快速拿到文档 id,再拿完整文档。关键点:Term:分词后的最小单元;分词器 Analyzer:包含字符过滤器、分词器、token 过滤器;中文推荐分词器:ik_max_word(细粒度)、ik_smart(粗粒度)。1.5 写入流程图解(面试必问)plaintext客户端写请求 → 协调节点Coordinating Node ↓ 1. 通过文档id hash路由,算出该文档落到哪个主分片 ↓ 2. 请求转发到对应的主分片节点 ↓ 3. 主分片执行写入,写入内存buffer + translog事务日志(防止宕机丢数据) ↓ 4. 主分片把写请求同步给所有副本分片,副本写入成功 ↓ 5. 所有副本返回成功 → 主分片返回成功给协调节点 → 返回客户端补充两个重要概念:refresh:内存 buffer → 生成 segment 放到文件系统缓存,此时可以被搜索,默认 1 秒刷新。近实时 NRT,不是完全实时。flush:把内存数据持久化到磁盘,清空 translog。translog:类似 mysql redo log,宕机恢复数据。面试常问:为什么 ES 写入不是实时?默认 1s refresh,写入后 1 秒后才能搜到。想要强实时可以手动 refresh,性能会暴跌。1.6 查询流程图解plaintext客户端搜索请求 → 协调节点 1. 协调节点把查询转发给该索引**所有主/副本分片** 2. 每个分片本地执行检索,返回文档id+打分_score给协调节点 3. 协调节点合并各个分片返回结果,全局排序、分页 4. 根据文档id,去各个分片拉取完整文档数据 5. 返回最终结果给客户端1.7 ES 的打分机制默认 BM25 算法(7.x 默认,替代旧的 TF‑IDF),计算词条和文档相关性得分_score。二、SpringBoot + ElasticSearch 完整样例版

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号