首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Elasticsearch(ES)正排索引(Forward Index)和倒排索引(Inverted Index)

Elasticsearch(ES)正排索引(Forward Index)和倒排索引(Inverted Index)

作者头像
运维小路
发布2025-08-11 10:27:39
发布2025-08-11 10:27:39
1570
举报
文章被收录于专栏:运维小路运维小路

中间件,我给它的定义就是为了实现某系业务功能依赖的软件,包括如下部分:

Web服务器

代理服务器

ZooKeeper

Kafka

RabbitMQ

Hadoop HDFS

Elasticsearch ES (本章节)

前面几个小节我们介绍的都是ES的实际操作,今天我们来讲讲关于ES底层技术之一:倒排索引 (Inverted Index)。

讲解倒排索引之前我们需要先了解什么是正排索引(Forward Index), 正排索引,它以文档为中心存储原始内容,是数据库、搜索引擎和大数据系统中实现高效数据检索的关键组件。

  • 正排索引 → 书籍前面的页码目录(通过页码直接定位到内容),实际上他并不算严格意义的正排索引,因为通过ID或者页面实际上利用的是主键索引。真正的查询是属于内容进行查询,所以他需要进行全表扫描。

正排索引是以文档(Document)为中心的索引结构。它记录的是:每个文档中包含了哪些内容。假设有以下三篇文档:

  • Doc1: "apple banana"
  • Doc2: "banana cherry"
  • Doc3: "apple cherry date"

那么正排索引的结构看起来像这样:

ID

内容

1

apple banana

2

banana cherry

3

apple cherry date

从文档 → 单词(内容)类似于你写日记时,每篇日记记录当天发生了什么想要查找“哪些文档包含 apple”,就必须逐篇扫描所有文档内容,效率很低。

倒排索引是以单词(Term)为中心的索引结构。它记录的是:每个单词出现在哪些文档中

继续上面的例子,构建倒排索引如下:

单词

出现的文档ID列表

apple

[1, 3]

banana

[1, 2]

cherry

[2, 3]

date

[3]

从单词 → 文档列表想找“包含 apple 的文档”?直接查表,瞬间得到 Doc1 和 Doc3极大提升关键词检索速度,是搜索引擎的核心技术之一。

虽然每篇文字都有编号或者ID,但是当我们实际搜索的都是使用内容进行搜索,而非使用ID进行进行搜索。所以在搜索内容的是倒排索引效率会更高。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档