正排索引和倒排索引
正排索引(从文档指向关键字)
- 正排索引是以文档的id为关键(主键),记录的是这个文档里有什么字或者词,出现的次数和出现的位置
- 正排索引的建立和维护比较简单,像数据库的表格一样,要添加数据可以直接加在后面,不会对前面的数据进行干扰
- 正排索引在查询时要扫描所有的文档,找到所有包含有关键字的文档,所以效率低
- 例:文档1:我爱学习不爱睡觉
文档2:我爱打撸啊撸
文档1 | (我:1次,1位),(爱:2次,2、6位)… |
---|---|
文档2 | (我:1次,1位),(撸2次,4、6位) |
… |
倒排索引(从关键字指向文档)
- 倒排索引是以字或者词为关键,记录的是这个字或词出现在哪个文档,有该文档的id和位置信息
- 当有新的文档要加进来时,每个字或词对应的文档信息可能要发生变化,索引建立和维护比较困难
- 查询时不用查找所有的文档,可以根据关键字直接找到关键字所对应的文档,效率快
- 例:文档1:我爱学习不爱睡觉
文档2:我爱打撸啊撸
我 | (文档1:1次,位置1)(文档2:1次,位置1) |
---|---|
撸 | (文档2:2次,位置4、6) |
… |
ps:自己总结的留个记录,如有不对之处请大佬们多多指教