索引倒排
正向索引:左边是文档编号,右边是关键词
正向索引的结构像下面这样子的:
文档编号1 此文档中出现的关键词列表(单词1,出现位置,出现次数;单词2,出现位置,出现次数………..)
文档编号2 此文档中出现的关键词列表
正向索引还是需要遍历扫描(扫描所有正向索引文件才知道哪些文档带有某个关键词),性能比较慢。倒排索引:左边是关键词,右边是文档编号
关键词1 带有此关键词的文档编号1,文档编号2….
关键词2 带有此关键词的文档编号1,文档编号2….
Lucerne使用的是倒排文件索引结构。该结构及相应的生成算法如下:
设有两篇文章1和2:
文章1的内容为:Tom lives in Guangzhou,I live in Guangzhou too.
文章2的内容为:He once lived in Shanghai.
关键词 文章号[出现频率] 出现位置 guangzhou 1[2] 3,6 he 2[1] 1 i 1[1] 4 live 1[2] 2,5, 2[1] 2 shanghai 2[1] 3 tom 1[1] 1