倒排索引

1、数据库中的索引是对字段的内容操作,可以认为是对字段取值建一个排序结构,这样在查找的时候就不用遍历查找了。

2、考虑现实当中的一种需求,对于某个关键字我想知道在哪个文档出现,上面的索引技术不能解决这个问题。怎么办?

3、这要使用倒排索引,对每个关键字建立一个索引,标示在哪个文档里出现。比如:中国 对应 101100,杭州 对应 100110,说明中国在 第1、3、4个文档出现,杭州在第1、4、5文档出现。同时出现中国和杭州的文档有 101100&100110 = 100100 第1、4文档出现。出现中国没有出现杭州的文档有:101100&!100110=001000,只有第3个文档。

4、实际情况要比刚才的例子复杂的多,不光要考虑是否出现,还要考虑出现的次数,文档的质量等,根据这些情况对搜索的结果排序,这就是互联网的搜索引擎。

原文地址:https://www.cnblogs.com/nzbbody/p/4440059.html