宏观,广阔
最重要的收获,是对信息检索系统(搜索引擎)有一个宏观的认识,大体上说,需要从两个维度来看:
第一个是查询维度,它的核心,是两个索引结构;其一是字典,其二是倒排拉链和正排索引;
字典的职责,是把 query 变成 term set;期间用到了多种技术,如:语义扩展(同义词、拼写校正)、k-gram 索引等等;
倒排拉链的职责,有两个,是完成 term 到文档列表的映射;同时,由于从倒排拉链中获取的文档数量,直接影响了后续计算量的大小,这里需要考虑拉链中文档的排序,往往会使用静态得分技术(如机器学习打分),按照得分高低进行排序;并借助此静态得分,对索引进行分层,核心思想,就是提早剪枝;
正排索引的职责,是获取评分所需要的信息(如:tf-idf),一些文档聚类的信息(如 返回了文档 A,可以再返回与 文档 A 统一类的文档,来增强查询的召回率);
最后,需要对返回的结果进行再打分(重排序)、并计算相关性(可以用 tf-idf、可用概率检索模型等等技术),一般是在这里引入了 query 相关的信息,比如:在静态打分的基础上,基于向量模型,计算query 与文档的相似度;
第二个是数据维度,包括了爬取、索引的构建和预计算;
这里就是大名鼎鼎的 mapreduce 和 pagerank 发挥作用的地方了;当时,前面提到的文档聚类,和各种与 query 无关的剪枝、打分技术,都是在这个阶段完成的;
另外,值得注意的是,由于某些正排索引中所需要的信息是全局的(tf-idf),但是物理上上,索引是分片的,这些信息一是在此过程计算的;
目前就了解到这,后面再好好读读,尤其是那些年我们一起忽略的各种算法和数学公式 ...
有关键情节透露