本帖最后由 深渊 于 2023-7-22 17:37 编辑
在搜索领域中最为重要的两个名词;
正向索引通常用于数据库中,在搜索引擎领域使用的最多的就是倒排索引,我们根据如下两个网页来对这两个概念进行阐述:
html1:我爱我的祖国,我爱编程
html2:我爱编程,我是个快乐的小码农
正向索引
假设我们使用mysql的全文检索,会对如上两句话分别进行分词处理,那么预计得到的结果如下:
我 爱 爱我 祖国 我的祖国 编程 爱编程 我爱编程
我 我爱 爱 编程 爱编程 我爱编程 快乐 码农 小码农
假设我们现在使用 正向索引 搜索 编程 这个词,那么会到第一句话中去查找是否包含有 编程 这个关键词,如果有则加入到结果集中;第二句话也是如此。假设现在有成千上百个网页,那么搜索的效率将会非常非常低些。
倒排索引
倒排索引是 按照 分词 与 文档 进行映射,我们来看看如果按照倒排索引的效果
关键词 |
文档名 |
我 |
html1,html2 |
爱 |
html1,html2 |
爱我 |
html1 |
我爱 |
html2 |
祖国 |
html1 |
我的祖国 |
html1 |
编程 |
html1,html2 |
... |
... |
如果采用 倒排索引 的方式搜索 编程 这入词,那么会直接找到关键词中查找到 编程 ,然后查找到对应的文档,这就是所谓的倒排索引。
|