在上一节《2.2、页面搜集原理、技术和系统--搜集过程》中,讲解了调度器对抓取回来的网页保存到网页数据库中,那么网页数据库是如何对网页信息进行保存的呢?什么样的存储方式才能更好的给其他功能模块调用呢?这就是本节要探讨的问题: 天网搜索引擎的网页数据库是以天网存储结构来进行保存的,我们就以该存储结构进行讲解,要注意的是:该存储结构仅仅适用于天网搜索引擎,并不代表其他搜索引擎使用该存储方式进行网页保存。

天网存储结构定义:

  • 1)一个原始网页库由若干个记录组成,记录顺序追加,记录之间没有分隔符。
  • 2)一个记录由头部、数据和空行组成。
  • 3)头部由若干属性组成,每个属性为一个非空的行,头部不允许出现空行。
  • 4)属性由属性名和属性值组成,并由冒号“:”隔开。
  • 5)头部的第一个属性必须是版本属性,属性名为version。
  • 6)头部最后一个属性必须是数据长度属性,属性名为length。
  • 7)属性名必须是小写的字符串。

下图为天网网页数据库的一个案例: 天网存储结构定义

数据的可恢复性分析

使用天网存储结构,可以通过以下步骤找到残存片段中所有完整的记录:

  1. 一行行的寻找字符串“version:”。除非没有一个完整的记录,否则该字符串肯定能找到。记录该字符串的位置POS。
  2. 找到该字符串后,判断其后的数据是否满足定义条件。如果任何一个不满足,则返回步骤1。从记录的位置POS开始寻找下一个version。
  3. 当满足条件2,则查看下一个记录是否满足天网条件,如果不满足,则返回步骤1,如果满足,则检查再下一个记录是否满足天网条件。
  4. 如果连续3个记录都是正确,则认为步骤1所找到的是一个正确的记录的开始,这可以依次找到所有正确的原始网页。

小结

综上所述,我们可以知道天网存储结构可以快速的保存抓取回来的网页信息,并且有很好的容错性和可恢复性,是一种比较优秀的存储结构,各个搜索引擎都会为自己搭建一个稳定的网页数据库,有兴趣的朋友可以去翻看其他文献,研究其他更好的网页存储结构。 黄聪会在之后的章节做解答,下一节我们来看《2.4、页面搜集原理、技术和系统--如何避免网页重复搜集》