现在的位置: 首页 > 搜索引擎优化 > 正文

搜索引擎索引系统浅解【系列③】

2013年12月16日 搜索引擎优化 ⁄ 共 1512字 暂无评论 ⁄ 阅读 1,678 次

当用户检索时,搜索引擎需要计算与查询相关的文档并且进行一定排序。而排序需要有算法有数据库,搜索引擎索引系统便为排序算法提供了数据基础。在网页分析阶段,搜索引擎将主题内容等信息提取出来,其后,便是索引系统对这些信息进行数据化、存储等阶段。

搜索引擎索引系统涉及内容很多,如存储内容、存储形式、数据结构、压缩、内存管理、磁盘I/O等,虽然对搜索引擎很重要,但对于SEO而言,了解意义不大。本文仅谈倒排索引的基础概念、模型等内容。

通常认为单词是文档的一部分,但如果认为,文档是单词的信息,即可以通过单词查找文档,这样的索引形式就是倒排索引。倒排索引主要由单词词典和倒排文件组成,单词词典是某个大文档集分词后所有单词的集合,且记录了每个单词对应的倒排列表位置;倒排文件是倒排列表的集合,倒排列表是记录某个单词出现的所有文档及该单词在文档中具体出现信息的数据。

搜索引擎索引系统

在存储时,单词及文档均需要转化为计算机方便计算的编号形式,如单词及文档URL可通过一定方法转化为二进制数值等。

倒排列表中可以存储的信息很多,比如:单词出现的文档集;在文档中出现的次数、频率、位置、段落甚至句子;是否在H标签、加粗、着色、锚文本、Title标签、Alt标签等特殊域中出现;所有动词、名词相关信息;是否在评论、底部、侧边及其他非重要区域出现等等。以下简单模拟倒排列表存储的形式:

1、仅含有单词所在文档及出现次数的形式:

搜索引擎索引系统

假设某单词的编号为a,后面的信息中第一个字段为包含该单词文档的ID,第二个为该单词在文档中出现的次数。即,单词a在2、3、4、7四个文档中出现,其中,在文档2中出现5次、在3中出现6次、在4中出现1次、在7中出现10次;同时,单词c在6、9两个文档中出现,分别出现4次、2次;文档2中同时出现过单词a和单词b,即文档2主题可能与a和b都相关,若用户检索ab词组合,可能该文档是最佳选择。

2、含有特殊域信息的倒排列表形式(以单词a为例):

搜索引擎索引系统

单词a在文档1中出现1次,在第4个字符处出现,文档1的标题为第1到5个字符,锚文本为第10到12个字符,说明单词a出现在标题中,而未出现本文的锚文本中;

单词a在文档2中出现2次,分别在第12和18个字符处出现,文档2的标题为第5到10个字符,锚文本有两个分别在第10到12及18到20个字符处,说明单词a未出现在文档2标题处,但出现在了两个锚文本中;

单词a在文档3中出现2次,分别在第2和6个字符处出现,文档2的标题为第2到8个字符,无锚文本,说明单词a两次出现在标题中。

倒排表用于生成文档特征函数的值,也可以直接在倒排表中直接生成通过特征函数计算得到的单词跟文档的相关性分值,然后在用户搜索单词或词组时可以减少在线计算时间,提高搜索引擎效率。然而,这样做有一定缺陷,即评分系统一旦建立起来就不可再更改评分机制,更重要的是我们会损失重要信息,如单词之间的临近信息、相邻词词组检索计算偏差等。但是,搜索引擎可以选择折中的方式,如对分值排名在前100的提取出详细倒排列表进行二次计算,而在100名之后的将直接按已储存的分值进行排序,这样即可以大大提高计算效率同时又能保证排序的可控精准。

关于单词词典的存储方式很有意思,如哈希加链表词典结构、B树结构等,在此不阐述。对SEO而言,从经验来讲,增加文本表现的多样性有助于排名,如内容中同时出现图片、视频等且有相应描述信息,文本中有H标签等等。

注:本文为个人理解,若有错误之处欢迎指正。


  1. 参考:
  2. 1.      《搜索引擎原理、技术与系统》
  3. 2.      《这就是搜索引擎》
  4. 3.      《走进搜索引擎》
  5. 4.      《搜索引擎信息检索实践》
  6. 5.      百度站长平台等网络资源
» 声明:本站文章源于个人经验总结或书籍、互联网转载,内容仅用于个人学习,请勿转载,否则后果自负!

给我留言

留言无头像?