2.3 挑战环境
大多数情况下,元搜索引擎使用的成员搜索引擎是自治的,即它们是独立建立和维护。每个搜索引擎的开发者决定其搜索引擎将为哪些文档提供查询服务、如何表示文档以及何时更新索引。文档和用户查询之间的相似度通过相似度函数计算。同样,也是由每个搜索引擎的开发者决定使用哪种相似度函数。商业搜索引擎的开发者通常把他们使用的相似度函数和其他实现细节视为私有信息,不向公众提供。一般来说,元搜索引擎需要与没有直接合作关系的搜索引擎交互。
成员搜索引擎自治的直接后果是存在大量的异构。2.3.1节介绍元搜索引擎环境中一些独特的主要的异构,并讨论它们对构建元搜索引擎的影响。常见于其他自治系统(如多数据库系统)中的异构,例如不同的操作系统平台,我们将不做描述。2.3.2节简要概述旨在简化元搜索引擎与其成员搜索引擎之间交互的一些研究工作。
2.3.1 异构及其影响
在自治成员搜索引擎之间有下列异构[Meng et al.,1999b,2002]。
1)文档集。不同搜索引擎的文档集可能有两个层次的不同。第一层是集合的主题或话题领域。例如,一个集合可能包含医疗文档,另一个集合可能包含法律文档。在这种情况下,这两个集合的主题不同。在实际中,因为一个集合所包含的文档可能来自多个领域,所以这一文档集的主题领域可能不容易被确定。第二层是实际文档。即使两个集合有相同的主题,但它们仍然可以有完全不同的文档集。一般情况下,多个文档集合之间的关系是复杂的,因为在主题层次和文档层次上,它们可以有不同的重叠度。
2)查询语言。每个搜索引擎都支持一个预定义的查询模型集合,其范围从向量空间模型、布尔模型、邻近匹配模型到精确的字符串匹配和数值区域匹配。而且,不同的搜索引擎通常支持不同的查询模型集合,使用不同的符号来表示相同的算符,针对用户提交的关键词查询,若无明确指定算符时,会有不同的默认解释。
3)服务器连接。与人类用户通过Web浏览器界面提交查询给搜索引擎不同,元搜索引擎直接发送查询到搜索引擎服务器。每个搜索引擎都有连接配置,任何应用程序都需要使用该配置连接搜索引擎。典型的配置包含名称、服务器的因特网地址、支持的HTTP请求方法、查询字符串名称、许多默认的查询字符串名称和值对(详情请参见第4章)。不同的搜索引擎通常有不同的连接配置。
4)响应页面格式。所有搜索引擎都用HTML编码格式在动态生成的响应页面中展示其检索结果。这样的格式通常是预先设计的,称为模板。一个模板可能包含多个部分,例如,一部分用于显示搜索结果记录,另一部分用于显示赞助链接。在每一部分中,模板控制如何组织和显示该部分的信息。响应页面及包含查询结果记录的相应部分通常在不同的搜索引擎中有不同的模板。
5)索引方法。不同搜索引擎可能采用不同的技术来确定表示一个文档的词。例如,有些搜索引擎仅使用一个Web页面中出现的词来索引该Web页面,但许多搜索引擎也使用出现在其他Web页面中的锚词(anchor term)来索引其链接的Web页面。其他一些不同索引技术的例子包括:是否删除停用词(stop word)、是否执行词干提取(stemming)、是否识别短语。此外,不同的搜索引擎可能使用不同的停用词列表和不同的词干提取算法,以及识别出不同的短语。
6)词加权方法。Web页面中词的权重可以使用不同的方法来确定。例如,一种方法使用词频权重(term frequency weight),另一种使用词频权重(term frequency weight)和逆文档频率权重(inverse document frequency weight)的乘积(见1.2.2节)。这些方法存在多种变体[Salton,G.,1989]。一些搜索引擎也把词的位置和字体加入权重计算。例如,若一个词出现在Web页面标题中或为黑体,则其权重可被增加(更多讨论见1.3.3节)。
7)相似度函数。不同搜索引擎可能采用不同相似度函数来度量查询和Web页面之间的匹配程度。针对文本文档,1.2.3节描述了一些常用的相似度函数,包括余弦函数和Okapi函数。在1.3.4节中,我们讨论的链接导出的重要性(例如,PageRank)也可以运用于相似度函数。在实际中,相似度函数可能考虑大量的因素,排序规则可能变得非常复杂。例如,据2008年的报道,Google所用的排序规则考虑了超过250个因素[Hiemstra,D.,2008]。
8)文档版本。作者可以随时修改Web上他们自己的文档,甚至可以由某些软件自动修改。通常,当一个Web页面被修改后,索引该Web页面的那些搜索引擎不会收到修改通知。在搜索引擎重新获取和重新索引修改后的Web页面之前,搜索引擎中该Web页面的表示是基于陈旧的或过时的页面版本。由于Web规模庞大,所以大型搜索引擎的爬虫只能按某一周期(从几天到几周)重访以前索引过的页面。因此,在一个搜索引擎爬虫两次访问某一页面之间,该页面可能会经历多次变化。由于搜索引擎是自治的,所以它们的爬虫可能在不同时间获取或重新获取相同的页 每个页面由它的URL标识。。因此,在任意给定时间,很可能不同搜索引擎索引了同一页面的不同版本。
上面讨论的自治性和异构性将对元搜索引擎的每一个主要部件的构建产生重大影响。下面进行讨论。
1)搜索引擎的选择。第一,不同的成员搜索引擎有不同文档集,这一事实是需要对搜索引擎进行选择的基础。第二,为了估计一个搜索引擎关于一个给定查询的有用性,搜索引擎选择器(search engine selector)需要具有搜索引擎文档集内容的一些知识。把概括搜索引擎文档集内容的知识称为搜索引擎内容表记(content representative),或简称表记(representative)。开发有效的搜索引擎选择算法的关键挑战为:1)如何概括搜索引擎文档集的内容?换句话说,应该使用什么样的表记?2)如何使用不同成员搜索引擎的表记来执行选择?3)如何生成所需的表记?如果成员搜索引擎不协作提供表记所需的信息,最后一个问题会变得更加困难。由于搜索引擎的自治性,它们的协作往往是不可能的。第3章将详细研究上述3个问题。
2)搜索引擎的加入。如2.1节所讨论的,搜索引擎加入器部件包括两部分:查询分派器(query dispatcher)和结果抽取器(result extractor)。每个成员搜索引擎的查询分派器依次包括两个程序:一个是连接程序(connection program),一个是查询翻译程序(query translator)。显然,不同成员搜索引擎的服务器连接、查询语言和响应页面格式的异构性直接影响连接程序、查询翻译程序和结果抽取器。特别地,每个成员搜索引擎需要各自的连接程序、查询翻译程序和结果抽取器。这使得开发大规模元搜索引擎更具挑战性,因为人工实现大量的连接程序、查询翻译程序和结果抽取器是不实际的。第4章将介绍这些子部件的高度自动化解决方案。
3)结果合并。许多因素影响文档和查询之间的相似性,这些因素包括文档集(即它影响每个词的文档频率进而每个词的idf权重)、索引方法、词加权方法、相似度函数和文档版本。不同成员搜索引擎之间这些因素的异构性使得不同搜索引擎计算的相似度(关于同一查询)没有直接可比性。这意味着结果合并器不能直接使用这些相似度对不同搜索引擎返回的结果进行排序,即使这些相似度可以得到。现代搜索引擎通常不返回检索结果的相似度,而是在内部使用这些相似度来确定检索结果的排序。这导致不同搜索引擎返回查询结果的本地排序也没有直接可比性。这些不可比性使得有效的结果合并算法的设计变得更复杂。第5章将介绍不同的结果合并技术。
2.3.2 规范化研究
如2.3.1节所讨论的,不同搜索引擎之间的自治性和异构性使构建元搜索引擎变得很困难。元搜索领域已经付出了很大努力来规范元搜索引擎和搜索引擎之间的通信,以便简化构建元搜索引擎的任务。本节简述其中一些主要工作。
STARTS(Stanford Proposal for Internet Meta-Searching)[Gravano et al.,1997]。这是最早提出在搜索引擎和元搜索引擎之间建立协议的尝试之一。它考虑了如何支持搜索引擎选择、查询映射和结果合并。对于搜索引擎选择,它要求搜索引擎提供词汇信息(包括停用词、词干提取、大小写敏感性、字段相关性)和一些具体的统计数据(搜索引擎的总计词频、文档频率和搜索引擎中的文档数目)。它还要求搜索引擎提供内容摘要(文本描述)。STARTS对查询语言问题进行了很好的讨论,包括基于关键词的查询、布尔运算符和邻近条件。这些对于从元搜索引擎查询到搜索引擎查询的映射很重要。然而,STARTS没有涉及应该如何格式化搜索结果以便于元搜索引擎抽取。
OpenSearch(http://www.opensearch.org/Home 访问日期为2010年11月3日。)。OpenSearch由Amazon.com研发,它支持一些基本规格说明:连接信息(例如,搜索引擎服务器的地址、字符编码协议和输入语言)、隐私信息(例如,结果是否可以显示给用户或发送到其他应用程序)、高级别内容信息(例如,是否有成人内容)。然而,它一般不支持详细搜索结果格式化的规格说明。它的“响应元素”支持一些XML协议,例如RSS 2.0。
SRU(Search/Retrieval via URL;http://www.loc.gov/standards/sru/ 访问日期为2010年11月3日。)[SRU]。SRU可以视作Z39.50为使其与Web环境更相关而专门定制的特定版本。它使用扩展的URL(一些细节包含在多个附加文档中)来指定搜索引擎的地址、查询参数和结果格式。支持SRU协议的每个搜索引擎应该具有一条“解释记录”,此记录给出关于其功能的信息,如搜索引擎连接信息。
SRU具有称为通用查询语言(Common Query Language,CQL)的查询语言。CQL支持关键词检索、布尔运算和邻近条件。SRU协议简化了任意应用程序与搜索引擎之间的交互,因此可以用来构建元搜索引擎。然而,这个协议几乎没有要求便于简化搜索引擎选择和结果合并所需的信息。
MXG(Metasearch XML Gateway)[Standards Committee BC/Task Group 3,2006]。这是国家信息标准组织(National Information Standards Organization,NISO)制定的一个标准。对于元搜索应用,MXG是基于SRU而制定的。它提供了一种由内容提供者向元搜索引擎展示其内容和服务的机制。MXG有3个级别的要求,较高级别的要求支持更多的互操作性和功能性。级别1需要搜索引擎满足基本的URL请求要求和响应要求(返回结果使用XML格式)。但是,元搜索引擎的开发者需要自己发现每个搜索引擎具备的能力和如何将元搜索引擎的用户查询转化为搜索引擎的本地查询格式。级别2还要求搜索引擎提供额外的信息,如主机服务器名称、端口号和数据集名称。级别3增加了这样一个要求:每个符合级别3的搜索引擎要支持一个标准查询语言,即通用查询语言。第3级MXG与SRU没有多大区别。
NISO元搜索议案(http://www.niso.org/workrooms/mi/ 访问日期为2010年11月3日。)。NISO大约在2003年年底启动这个议案。MI(Metasearch Initiative,元搜索议案)委员会包括3个任务组。第一组关注访问管理(认证和授权)。第二组关注数据集描述和服务描述。第三组关注搜索和检索。到2005年年底,各任务组发布了其推荐/草案标准。前面简要提及的MXG和SRU都是第三组的成果。
2005年第二组制定了两个草案规则,一个用于数据集描述(Collection Description,CD )[National Information Standards Organization,2006a],另一个用于服务描述(Service Description,SD)[National Information Standards Organization,2006b]。针对CD,每一个数据集有28个属性(标识符、标题、可选标题、描述、大小、语言、类型、权限、访问权限、权责发生方法、权责发生周期性、权责发生政策、监管历史、观众、主题、空间范围、时间范围、累积日期范围、内容日期范围、主体完整性、采集者、所有者、访问方式、子集、扩集、目录或说明、相关集合、相关出版物)。草案规则[National Information Standards Organization,2006a]没有论及有关词的统计数据。针对SD,描述服务的信息包括服务位置、网络协议(例如,HTTP)、身份验证或授权协议、访问数据的方法(搜索、浏览、排序、查询语言、字段/属性、比较器),以及能够被检索的记录数(或类似的功能设置)等。
NISO是美国国家标准局(American National Standards Institute,ANSI)的一部分,这个MI工作有来自世界上许多组织的参与者。因此,提出的标准有一定的公信力。然而,MI目前的状况并不清楚,因为从NISO MI网站(http://www.niso.org/workrooms/mi/)上看,似乎2006年之后NISO MI委员会就一直不活跃了。
尽管有上述工作,但是它们并没有被广泛用于构建真正的元搜索引擎。能被搜索引擎开发者广泛接受的单一标准是否会出现,仍拭目以待。