01 什么是搜索引擎及搜索系统
信息检索(Information Retrieval,IR)是从文档集合中返回满足用户需求的相关信息的过程。它是一门研究信息获取(Acquisition)、表示(Representation)、存储(Storage)、组织(Organization)和访问(Access)的学科。
检索来自Retrieval,有些人把它翻译成获取,本义是获得与输入要求相匹配的输出。而搜索来自Search,指带有目的性地寻找。信息检索不仅仅是指搜索,信息检索系统(IR System)也不仅仅是搜索引擎。
从狭义上讲,信息检索就是指信息搜索(Information Search);从广义上讲,信息检索包含搜索引擎(Search Engine)、问答系统(Question Answering)、信息抽取(Information Extraction)、信息过滤(Information Filtering)、信息推荐(Information Recommending)等。
搜索引擎是指根据一定的策略、运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,将用户检索到的相关信息展示给用户,为用户提供检索服务。
搜索引擎包括4个接口,分别是搜索器、索引器、检索器和用户接口。
搜索器的功能是在互联网中漫游,负责发现和搜集信息。
索引器的功能是理解搜索器所搜索的信息,从中抽取出索引项,输出用于表示文档以及生成文档库的索引表。
检索器的功能是根据用户的查询在索引库中快速检出文档,并进行文档与查询的相关度评价,对将要输出的结果进行排序,实现某种用户相关性反馈机制。
用户接口的功能是输入用户查询、显示查询结果、提供用户相关性反馈机制。
具体的搜索引擎架构示意图如图2-1所示。
▲图2-1 搜索引擎架构示意图
搜索系统的概念可以从如下两方面解释。
系统角度。从系统角度来看,搜索系统是一个更广泛的概念,包括搜索引擎。具有相关性计算和分析的系统都可以归为搜索系统。除了我们常说的搜索引擎外,搜索系统还应该包括外部支持的业务场景和应用领域等特征。
用户角度。从用户角度来看,搜索系统的输出是对用户需求的投射,因此我们在设计搜索系统时需要观察用户对检索结果的反应,除此之外,还得考虑相应的应用场景以及搜索工程。
02 搜索引擎的发展史
20世纪90年代,Tim Berners-Lee开启了互联网时代,并使其获得大规模发展。1990年,Tim Berners-Lee开发出世界上第一个Web服务器和第一个Web客户端,被命名为万维网(World Wide Web,WWW)。
次年,世界上第一个WWW网站info.cern.ch成立,伴随该网站成立的还有HTTP传输协议及相应的HTML等Web服务技术的诞生。1993年,NCSA发明了第一个显示图片的浏览器Mosaic,随后客户端浏览器逐渐趋于成熟。这些技术为互联网的快速发展奠定了基础。
互联网的快速发展使得搜索引擎的出现成为必然。1990年,第一个互联网搜索引擎Archie出现,主要用于搜索FTP服务器上的文件。在用户准确输入文件名的前提下,Archie可以准确地告诉用户该文件的位置。虽然Archie搜索的内容不是网页,但工作原理与网页搜索相似:自动搜索信息资源、建立索引、提供检索服务。
1995年,Excite搜索引擎正式上线,它是早期流行的搜索引擎之一。Excite的出现可以追溯到1993年2月,起由是6名斯坦福大学生想通过分析字词关系对互联网的大量信息进行有效检索。Excite以概念检索闻名,是搜索引擎技术—文本检索的代表。文本检索一般包括布尔模型、向量空间模型等,主要用于计算用户查询关键词和网页文本内容的相似度。
1995年4月,Yahoo正式成立。其由斯坦福大学博士杨致远和大卫·费罗创建。随着访问量和收录链接数的增长,Yahoo对互联网上重要站点的目录进行分类整理,迎合了用户需求,从而得到快速成长。Yahoo也成为“目录导航”搜索引擎技术的代表。该技术提高了被收录网站的质量,但不便于扩展且收录网站数量较少。
1998年9月,拉里·佩奇和谢尔盖·布林共同创建Google公司,其以PageRank链接分析等新技术大幅度提高搜索质量,成为占有搜索引擎市场份额最大的公司。Google是PageRank链接分析技术的代表,其充分利用网页之间的链接关系,考虑网页链入的数量和质量,从而计算网页的排名,提升搜索质量。
2000年1月,中国最大的搜索引擎公司百度成立,并一举成为国内最大的搜索引擎。目前,百度不再只是某一搜索引擎技术的使用,其试图通过用户查询、地理位置以及历史行为(搜索、点击、浏览)去理解用户此刻真正的需求。
STATCOUNTER统计的2019年1月~12月全球搜索引擎市场份额中,Google占比高达92.63%,微软的Bing和雅虎分别位居第二和第三,百度排在第四位。
STATCOUNTER统计的2019年1月~12月中国国内搜索引擎市场份额占比中,百度依靠本地化优势,以67.51%的占比排在第一位,搜狗和神马排在第二和第三。
在互联网快速发展的今天,信息正呈爆炸式增长,如何在信息过载的环境下快速有效地定位到目标信息成为关键问题。搜索是解决信息过载较为有效的方式。搜索引擎通过对互联网资源整理和分类,并将其存储在数据库中为用户提供查询服务,包括信息搜集、信息分类、用户查询等。
因此,作为互联网网站和应用的入口,搜索引擎的地位越来越重要。
03 搜索引擎的分类
搜索引擎可以分为以下4类:全文搜索引擎、元搜索引擎、垂直搜索引擎和目录搜索引擎。下面对这4类搜索引擎进行具体介绍。
1. 全文搜索引擎
计算机通过扫描文章中的每个词,对每个词建立索引,记录词汇在文章中出现的次数和位置信息。当用户进行查询时,计算机按照事先建立好的索引进行查找,并将结果反馈给用户。按照数据结构的不同,全文搜索可以分为结构化数据搜索和非结构化数据搜索。
对于结构化数据,全文搜索一般是通过关系型数据库的方式进行存储和搜索,也可以建立索引。
对于非结构化数据,全文搜索主要有两种方法:顺序扫描和全文检索。
顺序扫描,顾名思义,按照顺序查询特定的关键字,这种方式耗时且低效;
全文检索需要提取关键字并建立索引,因此,搜索到的信息过于庞杂,用户需要逐一浏览并甄别所需信息。在用户没有明确检索意图情况下,全文检索方式效率稍显不足。Google和百度都是典型的全文搜索引擎。
2. 元搜索引擎
按照功能划分,搜索引擎可以分为元搜索引擎(Meta Search Engine)和独立搜索引擎(Independent Search Engine)。
元搜索引擎是一种调用其他独立搜索引擎的搜索引擎,其能对多个独立搜索引擎进行整合、调用并优化结果。独立搜索引擎主要由网络爬虫、索引、链接分析和排序等部分组成;元搜索引擎由请求提交代理、检索接口代理、结果显示代理三部分组成,不需要维护庞大的索引数据库,也不需要爬取网页。
元搜索引擎具体实现逻辑如图2-2所示。
▲图2-2 元搜索引擎实现逻辑
请求提交代理就是将请求分发给独立搜索引擎。元搜索引擎可以按照用户需求和偏好请求实际需要调用的独立搜索引擎,该方式能够有效提升用户查询的准确率和响应效率。
检索接口代理是将查询内容转化成独立搜索引擎能够接受的模式,并且保证不会丢失必需的语义信息。结果显示代理是元搜索引擎按照用户的需求采用不同的排序方式对结果进行去重、排序。元搜索引擎常用的排序方式有:相关度排序、时间排序、搜索引擎排序等。
元搜索引擎的整体工作流程如下:
用户通过网络访问元搜索引擎并向服务器发出查询,服务器接收到查询内容后,先访问结果数据库,查询近期记录中是否存在相同的查询,如果存在,返回结果;
如果没有,将查询进行处理后分发到多个独立搜索引擎,并集中各搜索引擎的查询结果,结合排序方式对结果进行排序,生成最终结果并返给用户,同时保存现有结果到数据库中,以备下次查询使用。
保存的查询结果有一定的生存期,超过一定时间的记录就会被删除,以保证查询结果的时效性。
3. 垂直搜索引擎
垂直搜索引擎是针对某个行业的专业搜索引擎,是搜索引擎的细分和延伸,对特定人群、特定领域、特殊需求提供服务。它的特点是专业、精确和深入。垂直搜索引擎将搜索范围缩小到极具针对性的具体信息。
垂直搜索引擎的结构与通用搜索系统类似,主要由三部分构成:爬虫、索引和搜索。但垂直搜索的表现方式与Google、百度等搜索引擎在定位、内容、用户等方面存在一定的差异,所以它不是简单的行业搜索引擎。
用户使用通用搜索引擎时,通常是通过关键字进行搜索,该搜索方式一般是语义上的搜索,返回的结果倾向于文章、新闻等,即相关知识。垂直搜索的关键字搜索是放到一个行业知识的上下文中,返回的结果是消息、条目。对于有购房需求的人来说,他们希望得到的信息是供求信息而不是关于房子的文章和新闻。
4. 目录搜索引擎
目录搜索引擎是网站常用的搜索方式,类似于书本章节目录。该搜索方式是对网站信息整合处理并分目录呈现给用户,整合处理的过程一般需要人工维护,更新速度较慢,而且用户需要事先了解网站的基本内容,熟悉主要模块,所以应用场景越来越少。