倒排索引
倒排索引是什么?
倒排索引是一种非常重要且应用广泛的数据结构,它是现代搜索引擎的核心技术之一
它的基本思想是:将文档中的每个词语与包含该词语的文档列表关联起来
你可以把它想象成一本书后面的索引。在这本书的索引里,你不会看到“第10页有…,第11页有…”,而是会看到“人工智能:第10页、第11页、第25页…”
倒排索引就是这样一种结构,它将词语(或术语)作为键(Key),将包含该词语的文档列表作为值(Value)。这种“词语到文档”的映射关系与传统的“文档到词语”的映射(即正向索引)正好相反,因此得名“倒排”
倒排索引的核心构成
一个典型的倒排索引通常包含两个部分:
1. 词典
- 作用:存储所有文档中出现过的所有不重复的词语
- 结构:通常是一个经过排序的列表或哈希表。它能让你快速定位到某个词语在倒排列表中的位置。
2. 倒排列表
- 作用:存储每个词语出现的文档ID列表,以及该词语在文档中的位置、频率等信息
- 结构:与词典中的每个词语相对应,包含以下信息:
- 文档ID(Document ID):包含该词语的文档的唯一标识符
- 词频(Term Frequency):该词语在特定文档中出现的次数
- 位置(Position):该词语在文档中出现的位置(如第几个词)。这对于处理短语查询(比如”人工智能”)非常重要