分类目录搜索引擎的核心是信息的可靠性。由于分类目录中包含的网站都是经过人工仔细筛选的,因此具有很强的可靠性。然而,用户的需求和相关性并没有被考虑,而是由用户的自由浏览决定的。
对于文本检索搜索引擎来说,其重要是查询关键字与web内容的相关性。此搜索方法假定用户输入的查询关键字是用户的实际需要。显然,这种假设很难成立。此外,这种搜索方法无法识别信息的可信度。
第二代搜索引擎引入了链接分析技术。链接关系是一种推荐意义。推荐页面越多,链接分析得分越高。这实际上是衡量页面可信度的一个指标。同时,第二代搜索引擎还采用文本检索模型计算查询与web内容的相关性。因此,第二代搜索引擎在考虑信息相关性和可信度的同时,也不注重用户需求。
第三代搜索引擎着眼于用户的真实需求,而其他方面则兼顾了第二代搜索引擎的优势,即第三代搜索引擎同时考虑了三个核心问题。
作为互联网应用中主要技术含量的应用之一,优秀的搜索引擎需要复杂的体系结构和算法来支持海量数据的获取、存储和对用户查询的快速准确响应。本部分主要从宏观的角度介绍了搜索引擎的总体框架和各个组件模块的功能。
在架构层面,搜索引擎需要能够获取、存储和处理数百亿个网页,同时确保搜索结果的质量。如何获取、存储和计算如此大量的数据?如何快速响应用户查询?搜索结果如何满足用户的信息需求?这些都是搜索引擎面临的技术挑战。
一般搜索引擎架构的示意图。搜索引擎由多个技术模块组成,每个模块负责一部分整体功能,并相互配合,形成一个完整的整体框架。
搜索引擎的信息源来自互联网网页,整个互联网信息都是通过网络爬虫在本地获取的,因为互联网网页中相当一部分内容是相同的或几乎是重复的,“网页重复数据消除”模块将检测到这一点,并删除重复内容。
之后,搜索引擎将解析网页,提取网页的主要内容,以及指向网页中包含的其他网页的链接。为了加快对用户查询的响应速度,采用倒排索引的方式保存web内容,这是一种高效的查询数据结构,同时也保存了web页面之间的链接。之所以要保留链接关系,是因为这种关系在网页相关性的排名阶段是可用的。链接分析可以判断页面的相对重要性,这对用户提供准确的搜索结果非常有帮助。
由于网页数量庞大,搜索引擎不仅需要存储网页的原始信息,还需要存储一些中间处理结果。使用一台或少量机器显然是不现实的。为此,谷歌等商业搜索引擎开发了一套云存储和云计算平台,利用数万台普通PC构建可靠的海量信息存储和计算架构,作为搜索引擎和相关应用的基本支撑。
上面提到的是搜索引擎如何获取和存储大量的网页相关信息。这些功能不需要实时计算,可以作为搜索引擎的后台计算系统。搜索引擎最重要的目的是为用户提供准确、全面的搜索结果。如何实时响应用户的查询并提供准确的结果,构成了搜索引擎前台计算系统。
当搜索引擎接收到用户的查询词时,首先需要对查询词进行分析,希望通过将查询词与用户信息相结合,正确推断出用户的真实搜索意图。之后,搜索引擎缓存系统存储对应于不同查询意图的搜索结果。如果能在缓存系统中找到满足用户需求的信息,搜索结果就可以直接返回给用户,这样不仅通过重复计算节省了资源消耗,而且加快了搜索速度。响应速度;如果缓存中存储的信息不能满足用户的需求,搜索引擎需要调用“页面排序”模块功能,根据用户的查询实时计算出哪些页面满足用户的信息需求,并将输出作为搜索结果进行排序。在页面排名的两个最重要的参考因素中,一个是内容的相似性,哪些页面与用户的查询关系密切;另一个是页面的重要性,哪些页面质量较好或相对重要,这通常可以从链接分析的结果中获得。结合以上两个考虑因素,我们可以将网页排序为用户查询的搜索结果。