在搜索引擎中,每个文档都有一个id,文档的内容是所有关键词的集合。搜索引擎能够实现快速查找的核心就是利用索引。即用户输入关键字查找匹配索引,之后通过索引构建结果。
正排索引
以文档id为关键字,记录文档中每个关键字的位置信息,查询时需要遍历每一个文档。每个文档对应一个文档id。
根据文档内容构建出“文档id→关键词列表”的关系。
这种文档id的方式适合关系数据库通过id查询数据详情。
在搜索引擎中更,这种索引肯定不行,这样方式会消耗搜索引擎大量资源。所以,在搜索引擎中采取倒排索引的方式构建索引库,即把“文档id→关键词列表”转换为“关键词列表→文档id”,每个关键字对应着一个文档id列表。
倒排索引
依据关键字查找文档,用关键字作为索引key,每个关键字的索引是一个列表,这个列表的元素就是“关键词→文档id列表”的关系。
本质是,先将记录中的某些列进行分词,然后形成分词与文档id的映射关系。