🎄正向索引 vs 倒排索引
🍭正向索引(MySQL)
正向索引又称为前向索引,它是一种将文档按照其文本内容逐个索引的数据结构。换句话说,
正向索引以文档作为键,将文档内容直接存储为对应的值
。通常用于需要访问整个文档内容的场景,例如文档管理系统。正向索引能够快速地根据文档ID或者其他标识符获取到完整的文档内容,但在需要进行文本检索时效率相对较低,特别是在大规模文档搜索中。
🍭倒排索引(Elasticsearch)
倒排索引则以单词为键,将出现该单词的所有文档列表作为对应的值
。它允许用户快速地根据检索词找到含有该词的文档列表,从而可以快速定位到相关文档并提供高效的文本检索。相比于正向索引,倒排索引适用于文本检索场景,特别是在需要处理大规模文档并进行复杂检索的情况下具有明显的优势。
⚡举例说明
🎄MySQL vs Elasticsearch
🍭 [Row | Document]
Elasticsearch是
面向文档存储
的,可以是数据库中的一条商品数据,一个订单信息 文档数据会被序列化为JSON格式后存储在Elasticsearch中
Elasticsearch中的一条数据就是一个文档 即MySQL中的一行数据
🍭 [Table| Index]
索引(index):相同类型的文档的集和
映射(mapping):索引中的文档的字段约束信息,类似表的结构约束
🍭 其他概念对比
MySQl:擅长事务类型的操作 可以确保数据的安全和一致性
Elasticsearch:擅长海量数据的搜索、分析和计算
[参考1] ES高频面试问题:一张图带你读懂 Elasticsearch 中“正排索引(正向索引)”和“倒排索引(反向索引)”区别
[参考2] ElasticSearch教程入门到精通