Elasticsearch 概念与基础实操 (索引、映射与文档操作)(黑马微服务课day12)
Elasticsearch 概念与基础实操 (索引、映射与文档操作)在海量数据的搜索与分析场景中Elasticsearch (简称 ES) 凭借其分布式、高扩展和近实时的搜索特性成为了众多开发者的首选。因此了解es的使用的原理和操作必不可少Rabbit高级篇的总结内容RabbitMQ高级篇总结Rabbit入门篇的总结内容Rabbit入门篇总结 目录点击跳转对应章节1. 核心概念正向索引与倒排索引2. 中文分词利器IK 分词器3. ES 与 MySQL 概念对比4. Mapping 映射属性5. 索引库操作 (Index CRUD)6. 文档操作 (Document CRUD)1. 核心概念正向索引与倒排索引理解 ES 的高效查询首先要理解它的索引机制。正向索引类似传统关系型数据库的主键查询通过 ID 找内容。如果是模糊查询如LIKE需要全表扫描效率极低。倒排索引ES 搜索的核心。它将文档内容进行分词提取出词条Term并记录该词条所在的文档 ID 列表。搜索时先对关键词分词再去词条列表中快速定位文档 ID最后根据 ID 获取文档。这种方式极大地提高了全文检索的速度。小结2. 中文分词利器IK 分词器倒排索引依赖于分词而 ES 默认的标准分词器对中文支持很不友好会将中文逐字切分。在实际项目中我们通常会接入 IK 分词器。IK 分词器提供两种常用的分词模式ik_smart最少切分追求粗粒度的精准。ik_max_word最细切分穷尽词库的可能适合搜索场景。拓展分词词库中的词条3. ES 与 MySQL 概念对比为了方便具备关系型数据库背景的开发者理解我们可以将 ES 的概念与 MySQL 进行类比MySQL数据库 (Database) - 表 (Table) - 行 (Row) - 列 (Column)Elasticsearch索引库 (Index) - 类型 (TypeES 7.x 之后已废弃默认_doc) - 文档 (Document) - 字段 (Field)此外ES 的 Mapping 映射就相当于 MySQL 中的表结构定义Schema。4. Mapping 映射属性Mapping 是对索引库中整篇文档及其包含字段的结构定义。常见的数据类型包括字符串text(可分词的文本)、keyword(精确值如品牌、邮箱不分词)数值long,integer,short,byte,double,float布尔boolean日期date对象object(JSON 嵌套)核心注意只有text类型的字段需要进行分词并可以配置analyzer属性。具体实例5. 索引库操作 (Index CRUD)RESTful API 风格贯穿了整个 ES 操作。对于索引库的操作核心原则是一旦创建无法修改已有的 Mapping 字段因为这会导致原有倒排索引失效但可以新增字段。5.1 创建索引库和映射使用PUT请求明确表达“创建或覆盖”的语义。PUT/heima{mappings:{properties:{info:{type:text,analyzer:ik_smart},email:{type:keyword,index:false},name:{properties:{firstName:{type:keyword}}}}}}5.2 查询索引库使用GET请求。GET /heima5.3 修改索引库 (仅限新增字段)使用PUT向已有的 mapping 中追加新字段。PUT/heima/_mapping{properties:{age:{type:integer}}}倒排索引结构虽然不复杂但是一旦数据结构改变比如改变了分词器就需要重新创建倒排索引这简直是灾难。因此索引库一旦创建无法修改mapping。虽然无法修改mapping中已有的字段但是却允许添加新的字段到mapping中因为不会对倒排索引产生影响。因此修改索引库能做的就是向索引库中添加新字段或者更新索引库的基础属性。5.4 删除索引库使用DELETE请求。DELETE /heima6. 文档操作 (Document CRUD)对具体数据的增删改查同样遵循 RESTful 原则。6.1 新增文档使用POST请求并指定索引库、_doc以及文档 ID。POST/heima/_doc/1{info:黑马程序员Java讲师,email:zyitcast.cn,name:{firstName:云,lastName:赵}}6.2 查询文档使用GET请求加文档 ID。GET/heima/_doc/16.3 删除文档使用DELETE请求加文档 ID。DELETE/heima/_doc/16.4 修改文档ES 的修改分为全量修改和局部修改全量修改 (PUT)底层逻辑是先根据 ID 删除旧文档再新增同 ID 文档。如果原 ID 不存在则直接变为新增操作。PUT/heima/_doc/1{info:黑马程序员高级Java讲师,email:zyitcast.cn,name:{firstName:云,lastName:赵}}局部修改 (POST _update)仅修改指定的字段值。POST/heima/_update/1{doc:{email:ZhaoYunitcast.cn}}6.5 批处理 (Bulk)在处理大量数据时使用_bulk接口可以极大提高网络吞吐量。批处理的内容格式比较特殊每一组操作由两行 JSON 组成操作类型与元数据 操作的实际数据。批量新增示例POST/_bulk{index:{_index:heima,_id:3}}{info:黑马程序员C讲师,email:wwitcast.cn,name:{firstName:五,lastName:王}}{index:{_index:heima,_id:4}}{info:黑马程序员前端讲师,email:zhangsanitcast.cn,name:{firstName:三,lastName:张}}批量删除示例POST/_bulk{delete:{_index:heima,_id:3}}{delete:{_index:heima,_id:4}}

相关新闻

什么是VPC(虚拟私有云,Virtual Private Cloud)网络?

什么是VPC(虚拟私有云,Virtual Private Cloud)网络?

什么是VPC(虚拟私有云,Virtual Private Cloud)网络?什么是 VPC(虚拟私有云,Virtual Private Cloud)网络? 简单来说,VPC 是在公共云(如阿里云、AWS、腾讯云&am…

2026/7/6 20:15:12 阅读更多 →
AI原生应用开发:文本生成的7个最佳实践

AI原生应用开发:文本生成的7个最佳实践

AI原生应用开发:文本生成的7个最佳实践关键词:AI原生应用、文本生成、大语言模型、Prompt工程、微调、评估指标、负责任AI摘要:本文深入探讨AI原生应用开发中文本生成的关键技术,从模型选择到部署优化,系统性地介绍7个…

2026/7/6 5:08:27 阅读更多 →
Kotlin 面向对象 - 匿名内部类、匿名内部类简化

Kotlin 面向对象 - 匿名内部类、匿名内部类简化

匿名内部类 interface RequestObserver {fun onSuccess(data: String)fun onError(error: String) }fun requestUserInfo(requestObserver: RequestObserver) {val requestResult trueThread {Thread.sleep(3 * 1000)if (requestResult) {requestObserver.onSuccess("req…

2026/7/5 17:47:43 阅读更多 →

最新新闻

C# 运动控制框架多线程实战:3种线程同步原语对比与ManualResetEvent应用

C# 运动控制框架多线程实战:3种线程同步原语对比与ManualResetEvent应用

C# 运动控制框架多线程实战:3种线程同步原语深度对比与ManualResetEvent工程实践引言:工业控制场景下的线程同步挑战在数控机床的G代码执行过程中,当急停按钮被触发时,系统需要在5毫秒内完成所有轴的制动——这个场景完美诠释了工…

2026/7/6 23:36:39 阅读更多 →
UE5 Control Rig 受击响应实战:2个控制器+Fullbody IK 实现8方向动态反馈

UE5 Control Rig 受击响应实战:2个控制器+Fullbody IK 实现8方向动态反馈

UE5 Control Rig 受击响应实战:2个控制器Fullbody IK 实现8方向动态反馈在角色动作游戏中,受击反馈是提升战斗沉浸感的关键要素。传统蒙太奇动画虽然简单直接,但面对360度攻击方向时往往显得生硬呆板。本文将带你用UE5的Control Rig系统&…

2026/7/6 23:34:38 阅读更多 →
偏微分方程数值解避坑指南:有限差分法3大稳定性条件与误差分析

偏微分方程数值解避坑指南:有限差分法3大稳定性条件与误差分析

有限差分法求解偏微分方程的3大稳定性陷阱与Python实战避坑指南1. 问题背景与核心挑战在工程计算与科学模拟中,有限差分法(FDM)因其直观性和易实现性,成为求解偏微分方程(PDE)的主流数值方法之一。然而,当处理一维平流方程这类典型问题时&…

2026/7/6 23:32:36 阅读更多 →
PaddleOCR PP-OCRv6 模型 CPU/GPU 推理对比:3 种环境下的速度与精度实测

PaddleOCR PP-OCRv6 模型 CPU/GPU 推理对比:3 种环境下的速度与精度实测

PaddleOCR PP-OCRv6 全场景性能实测:CPU/GPU/Docker 部署方案深度解析1. 开篇:为什么选择 PP-OCRv6?在数字化转型浪潮中,OCR(光学字符识别)技术已成为企业降本增效的利器。百度飞桨团队推出的 PP-OCRv6 作为…

2026/7/6 23:30:35 阅读更多 →
Windows 10/11 移动热点与第三方软件对比:5 项指标实测与 2 个典型错误排查

Windows 10/11 移动热点与第三方软件对比:5 项指标实测与 2 个典型错误排查

Windows热点与第三方工具深度评测:抓包环境搭建的5大核心指标与实战避坑指南当移动开发者需要调试App网络请求或安全工程师分析流量时,一个稳定的抓包环境如同外科医生的手术刀。本文将带您深入比较Windows原生热点与第三方工具在抓包场景下的真实表现&a…

2026/7/6 23:28:33 阅读更多 →
Unity 协程 IEnumerator 状态机解析:从 C# yield 到 IL2CPP 的 3 层转换

Unity 协程 IEnumerator 状态机解析:从 C# yield 到 IL2CPP 的 3 层转换

Unity 协程 IEnumerator 状态机解析:从 C# yield 到 IL2CPP 的 3 层转换当你在 Unity 中写下yield return null时,背后发生的魔法远比表面看起来复杂。这个简单的语句触发了从 C# 语法糖到 IL 中间语言,再到 IL2CPP 转换的三层技术栈转换。本…

2026/7/6 23:24:28 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻