搜索引擎-理论基础

263 阅读2分钟
  • 1.数据

  • 2.索引构建:建立倒排索引的过程,就是索引构建。从给定的文档中生成索引

    将文档分词,然后将单词序列转换成索引结构

  • 3.索引检索:用户在发出请求时,利用索引进行检索。对结果进行相关性判断,排序。

    其中对用户的输入的请求进行分词,逐词进行搜索。其中算法参考TF-IDF

  • 4.索引管理器:即上一篇介绍的字典+倒排表

    其中倒排表存储的文件编号(D-Gap差值),单词出现的频数,位置

5d162a48ff734a07ba44b09df5072783_tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp

倒排索引:平衡二叉树,b+树等。

  • 5.建立索引:
    5.1.两遍文档遍历法(内存中完成)

    第一遍遍历收集全局信息。总共文档个数N,文档集合内所包含的不同单词个数M, 每个单词在多少个文档中出现过的信息DF。 将所有单词对应的DF值全部相加,就可以知道建立最终索引所需 的内存大小是多少。

    在第二遍扫描的时候,开始真正建立每个单词的倒排列表信息,即 对某个单词来说,获得包含这个单词的每个文档的文档ID,以及这个单 词在文档中的出现次数TF,这样就可以不断填充第一遍扫描所分配的内 存空间。当第二遍扫描结束的时候,分配的内存空间正好被填充满。经过两遍扫描完成索引建立后,即可将内存的倒排列表和词典信息写入磁盘,这样就完成了建立索引的过程。

    从上述流程可以看出,索引 的构建完全是在内存中完成的,这就要求内存一定要足够大,否则如果文档集合太大,内存未必能够满足需求。

    5.2排序法