另一种方法就是先做倒排索引,再查找。什么是倒排索引呢?请看下面的例子:
假设文章1的内容是:aaa bbb ccc ddd
文章2的内容是:bbb ddd yyy
上面的对应关系是:“文章号”对“文章中所有关键词”。倒排索引把这个关系倒过来,变成:“关键词”对“拥有该关键词的所有文章号”。文章1,2经过倒排后变成:
aaa 1
bbb 1,2
ccc 1
ddd 1,2
yyy 2
当建好了上面所示的倒排索引后,一旦我们要查找哪些文章中含有某个关键字时,只需取出该关键词所对应的文章号就行了。
比如我们查找aaa,返回1.查找ddd,返回1,2
一个使用倒排索引的经典例子是:但凡英文的技术书籍,书的最后面都有一个index,你可以通过它找到一个关键词出现在哪些页面里。这个就是关键词对拥有该关键词的页面的索引。
web搜索引擎中所用的倒排索引就是这样的。首先对一篇文章分词,去掉“的、啊、哦”等等停用词,然后对剩下的关键词建立倒排索引。