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 完整样例版

相关新闻

Mybatis resultType深度解析:从基础映射到高级应用实战

Mybatis resultType深度解析:从基础映射到高级应用实战

1. 项目概述&#xff1a;为什么resultType值得深究&#xff1f;如果你用过Mybatis&#xff0c;肯定写过类似<select id"findById" resultType"com.example.User">这样的SQL映射语句。resultType这个属性看起来平平无奇&#xff0c;不就是指定个返回类…

2026/10/7 13:03:40 阅读更多 →
免命令行!NS-USBloader 用一款工具搞定 Switch 注入、传游戏与文件分割

免命令行!NS-USBloader 用一款工具搞定 Switch 注入、传游戏与文件分割

免命令行&#xff01;NS-USBloader 用一款工具搞定 Switch 注入、传游戏与文件分割 【免费下载链接】ns-usbloader Awoo Installer and GoldLeaf uploader of the NSPs (and other files), RCM payload injector, application for split/merge files. 项目地址: https://gitc…

2026/10/15 5:02:08 阅读更多 →
DREAM框架:用智能体度量评估AI深度研究能力

DREAM框架:用智能体度量评估AI深度研究能力

1. 从“评估”到“研究”&#xff1a;DREAM框架的范式革新最近在AI研究社区里&#xff0c;一个名为“DREAM”的框架讨论热度悄然攀升。初看标题“Deep Research Evaluation with Agentic Metrics”&#xff0c;很容易让人联想到又一个评估大语言模型&#xff08;LLM&#xff09…

2026/10/11 8:24:30 阅读更多 →

最新新闻

2026东莞离婚纠纷维权优选:广东卡夫律所本土裁判优势深度解析

2026东莞离婚纠纷维权优选:广东卡夫律所本土裁判优势深度解析

2026东莞离婚纠纷维权优选&#xff1a;广东卡夫律所本土裁判优势深度解析在婚姻家事纠纷处理中&#xff0c;不同于普通民商事案件的刚性法条适用&#xff0c;离婚诉讼更看重本地法院裁判尺度、家事审判惯例、法官自由裁量标准。2026年东莞家事司法审判日趋精细化&#xff0c;抚…

2026/10/15 9:47:44 阅读更多 →
PyTorch实战Mask R-CNN实例分割:从数据准备到工业部署

PyTorch实战Mask R-CNN实例分割:从数据准备到工业部署

1. 项目概述&#xff1a;这不是“又一个目标检测demo”&#xff0c;而是一次真正落地的像素级理解实践Mask R-CNN不是PyTorch官方模型库里的一个可选模块&#xff0c;它是一套完整的方法论——把“图像里有什么”&#xff08;分类&#xff09;、“东西在哪儿”&#xff08;定位…

2026/10/15 9:47:44 阅读更多 →
大文件秒传技术:JSP实现原理与优化方案

大文件秒传技术:JSP实现原理与优化方案

1. 大文件上传的技术挑战与秒传原理在Web开发领域&#xff0c;文件上传功能看似基础实则暗藏玄机。当文件体积超过100MB时&#xff0c;传统的表单上传方式就会暴露出各种问题&#xff1a;网络波动导致上传失败、服务器内存溢出、用户等待时间过长等。更糟糕的是&#xff0c;当用…

2026/10/15 9:47:44 阅读更多 →
IQ测试题含答案:30道题的结构设计与判分逻辑

IQ测试题含答案:30道题的结构设计与判分逻辑

简介&#xff1a;这是一份面向求职面试、企业招聘及自我测评场景的IQ测试训练资料&#xff0c;涵盖言语理解、图形推理、数据分析等常见题型&#xff0c;共约30道经典题目&#xff0c;并配有详细答案与解析思路。资源包为单个docx文档&#xff0c;体积4.26MB&#xff0c;便于阅…

2026/10/15 9:47:44 阅读更多 →
OSPF协议详解与华为实验配置指南

OSPF协议详解与华为实验配置指南

1. OSPF协议基础认知作为网络工程师日常接触最广泛的IGP协议之一&#xff0c;OSPF&#xff08;Open Shortest Path First&#xff09;以其链路状态特性和分层设计理念&#xff0c;成为企业网和运营商网络的首选路由协议。与距离矢量协议不同&#xff0c;OSPF路由器通过洪泛LSA&…

2026/10/15 9:47:44 阅读更多 →
RTD2718Q驱动芯片4K144显示方案:规格书解读与调试实战

RTD2718Q驱动芯片4K144显示方案:规格书解读与调试实战

简介&#xff1a;这份资源是Realtek RTD2718Q-VD-CG显示驱动芯片的官方规格书&#xff0c;面向显示器方案工程师、嵌入式开发人员及硬件选型人员&#xff0c;用于了解该芯片在4K144Hz高刷显示场景下的接口能力与系统集成方式。芯片支持HDMI 2.1与DP 1.4双路输入&#xff0c;兼容…

2026/10/15 9:46:43 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时&#xff0c;网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上&#xff0c;依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里&#xff0c;扩缩容到底难在哪做过大模型推理服务部署的人&#xff0c;大概都经历过这样的场景&#xff1a;一个团队共用一套推理集群&#xff0c;A 业务跑的是 7B 的小模型&#xff0c;B 业务跑的是 72B 的大模型&#xff0c;C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子&#xff1a;一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减&#xff0c;为了把启动时间压进两秒以内&#xff0c;我手贱地把一串自认为“没用”的 systemd 服务给 disable 了&#xff0c;其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介&#xff1a;基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码&#xff0c;面向计算机相关专业课程设计与期末大作业学生&#xff0c;以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程&#xff0c;…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程&#xff1a;键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化&#xff0c;十个新手有八个栽在"往输入框里填东西"这件事上&#xff1a;要么填不进去&#xff0c;要么填了一半&#xff0c;要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程&#xff1a;阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀&#xff1a;什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面&#xff0c;跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式: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/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/14 7:53:34 阅读更多 →