搜索引擎的索引,可以理解为:搜索引擎蜘蛛将互联网上的页面抓取到本地后,进行数据整理、排列的一个过程。

给大家简单介绍下索引过程中所用到的部分技术手段。

在搜索引擎技术中索引是核心技术之一,索引技术直接关乎到用户搜索关键词所查询到的网页。

索引基本概念

搜索引擎的索引基本模型为单词-文档矩阵。

搜索引擎索引流程

图3

从以上表格中可以看出:

横向可以看出哪些文档中包含了某词汇,纵向可以看出,某个文档中包含了哪些关键词。

搜索引擎的索引即实现单词——文档矩阵的数据结构,在实际应用中有很多中方式可以实现,下面以常见的倒排索引为例说明。

倒排索引的概念

在倒排索引中有很多专业术语,下面一一简单介绍:

  • 文档:该对象为搜索引擎所处理的所有以文本形成储存的对象,如html、xml、txt、pdf等等文档,表征文本信息。
  • 文档集合:由若干文档集合所形成的文档集合。
  • 单词编号:系统会给予每个单词一个ID编号,以此作为单词的唯一识别标志。
  • 文档编号:系统会给予每个文章一个ID编号,以此作为文章的唯一识别标志。
  • 倒排索引:倒排索引是实现单词-文档矩阵的一种储存方式,主要包含单词词典与倒排文件两部分,能够实现根据单词,快速获取包含此关键词文档列表。
  • 单词词典:单词词典是文档集合中所包含的所有单词的集合
  • 倒排列表:记录了出现某单词的所有文档集合,以及出现在这些文档中的位置信息等等。每个单词的记录称为倒排项。

  • 倒排文件:所有单词的倒排列表都是以文件形式有规律的储存在磁盘中的,所以这些文件成为倒排文件。如图4所示:

 

搜索引擎索引流程

搜索引擎索引流程

图4

倒排索引的原理

倒排索引需要定义单词列表,而中文单词之间没有明确的标点符号,所以需要借助中文分词系统,将文档自动切分成若干关键词,为了系统后续处理工作,每个关键词会赋予唯一的id编号,同时记录下包含该关键词的所有文档信息。

而在倒排索引的实际应用中,索引系统会记录更多的信息才能满足需求。比如还需记录

单词频率信息:某个单词出现在某文档中的次数,单词的频率一定程度了影响了该文档与该词的相关性。

文档频率信息:即文档集中有多少个文档包含了某关键词,与单词频率信息相似,在搜索结果的排序计算中都起到了一个重要作用。

单词的位置信息:即某关键词出现在页面中的位置,这一项记录不是必须的,只有支持短语查询的时候才有可能需要用到。

如图:

搜索引擎索引流程

图5

搜索引擎的倒排列表是进行搜索结果收集与筛选的第一步,用户比如用户搜索“SEO博客”通过索引系统,调取所有包含该词的文档,通过分析单词频率信息,文档频率等等信息,初步按照文档与关键词的相似性排列输出。

当然,从我们的日常SEO工作中可以看出,百度搜索结果的排序似乎没有简单。当然,以上是一个基本的数据处理,而最终的搜索结果排序结果,还是需要经过复杂的算法处理。所以,最终的排序结果是由多种因素所综合影响的。

而SEO所做的,就是从站内与站外进行优化,人为的干扰这些因素,达到提升关键词排名的效果。