Elasticsearch等搜索引擎中二级索引的作用及与倒排索引的关联
为什么说Solr/Elasticsearch这类搜索引擎的核心是二级索引?
首先得明确两个概念的关系:倒排索引本质上是二级索引的一种特殊实现,作者在书中的表述是从广义范畴出发的。
先搞懂二级索引的定义:
相对于以文档主键为核心的「主索引」(正向索引,通过主键直接定位文档),所有基于非主键维度构建的索引都属于二级索引。它的核心作用是让你能通过主键以外的信息(比如关键词、标签、发布时间)快速找到目标文档。倒排索引就是为全文搜索优化的二级索引:
你提到的倒排索引,是专门针对「关键词」这个非主键维度构建的索引——它存储的是「关键词 → 包含该关键词的文档主键列表」的映射关系。这种结构完全符合二级索引的定义:用非主键的维度(关键词)来定位文档,只不过是针对全文搜索场景做了特殊优化(比如处理分词、词频、相关性排序等)。作者这句话的本质:
Solr和Elasticsearch这类搜索引擎存在的核心价值,就是让用户能通过关键词、标签等非主键信息快速检索文档,而实现这个能力的核心就是这类基于非主键维度的二级索引(倒排索引是其中最核心的部分)。所以作者才说“二级索引是它们存在的原因”。
另外补充:除了倒排索引,搜索引擎里通常还会针对文档的其他字段(比如作者ID、发布时间)构建常规的二级索引,用来支持过滤、排序等操作,这些也属于二级索引的范畴。
内容的提问来源于stack exchange,提问作者wlnirvana
相关产品推荐
相关产品推荐

