改进的搜索引擎的制作方法

文档序号:6593562阅读:174来源:国知局
专利名称:改进的搜索引擎的制作方法
技术领域
本发明涉及改进的搜索引擎。更具体地,本发明涉及用于创建从文件索引或远 程数据源检索搜索查询的改进的搜索引擎,本发明还涉及用于从接收到的搜索结果中去 除重复条目的改进的重复数据删除处理。
背景技术
搜索引擎是信息检索系统,其允许计算机系统的用户指定与感兴趣的项相关的 标准,即,“搜索词”,并使搜索引擎找到匹配的项。在文本搜索引擎如谷歌中,搜索 查询通常表示为一组词汇。
为了加快搜索进程,搜索引擎通常会在被称为索引的过程中预先收集关于项组 的元数据。索引通常需要较小的计算机存储量,并提供使搜索引擎计算项目相关性的基 石出。
桌面搜索是搜索用户的硬盘驱动器内容而不是互联网的搜索工具的名称。这种 工具可能找到包括网页浏览器历史、电子邮件档案、文本文件、声音文件等的信息。这 种搜索工具可能非常快,但可能不搜索整个硬盘驱动器。例如,只搜索操作系统的特定 应用程序(例如微软文件、文件夹),而可能不包括电子邮件或联系人数据库中包含的信 肩、ο
由于大量的公司数据可被存储在非结构化数据中(例如,用户创建的目录结 构),因此桌面搜索引擎工作能够在计算机的所有区域内搜索是很重要的。
桌面搜索引擎建立和维护索引数据库以优化搜索性能。当计算机处于空闲状 态时进行索引,搜索引擎一般收集与文件名/目录名、例如标题或作者等元数据、以及 所支持的数据项/文件的内容相关的信息。桌面搜索工具的实例是由微软发布的用于 Windows操作平台的编制索引的桌面搜索平台“Windows Search"。
网络搜索引擎提供搜索互联网上的信息的接口。网络搜索引擎通过存储与大 量网页相关的信息而运行,这些信息由跟踪其所见的每个链接的自动的网页浏览器网络 爬虫检索。然后,每页的内容被编制索引并存储在以后查询所使用的索引数据库中。 当用户例如通过使用关键词在搜索引擎中键入查询时,网络搜索引擎检查其索引并根据 其标准提供最匹配网页的列表。大多数搜索引擎都支持布尔运算符“AND(与)”、“OR(或)”、“NOT(非)”以进一步指定搜索,一些引擎提供允许用户指定关键词之 间的距离的近似搜索。
鉴于目前互联网的规模和发展速度,初始搜索查询是相关的、以便返回相关的 搜索结果是重要的。搜索引擎的效用还取决于返回的结果集的相关性,目前的搜索引擎 的一个主要问题是结果集包含重复搜索结果的趋势。
目前通过哈希算法处理搜索结果的重复数据删除,其中由哈希算法处理每个数 据块,从而生成存储在索引中的唯一编号。当一个数据块接收到哈希数时,将这个数与 其他现有的哈希数的索引进行比较。如果哈希数已经存在于索引中,则该数据块被认为是重复的并不被存储。否则,将新的哈希数添加到索引并存储新数据。然而,在某些 情况下,哈希算法可能为两个不同的数据块生成相同的哈希数。当这样的哈希冲突发生 时,系统将不会存储新的数据,因为系统认为其哈希数已经存在于数据索引中。这种误 报可导致数据丢失。还应注意的是哈希算法是复杂的。
搜索引擎的已知的另一个缺点是其可搜索的数据源的类型限制。传统地,搜索 引擎对非结构化数据源编制索引并进行搜索。因此,被约束在如数据库的结构化数据存 储中的大量数据不能由传统的搜索引擎访问。如果结构化数据被单独编制索引,则该索 引可提供给搜索引擎,但是对于已经在其自身结构内的编入索引的数据,这会产生进一 步的数据存储。
因此,本发明的目的是提供一种搜索引擎,该搜索引擎可克服或本质上缓和现 有技术的上述问题。发明内容
根据第一方面,本发明提供了用于生成改进的搜索查询的搜索引擎,该引擎包 括用于接收搜索请求的输入装置,所述搜索请求包括N个搜索词;处理装置,被设置 为根据所接收的搜索请求制定出搜索查询;输出装置,被设置为输出所述搜索查询,其 中,所述处理装置被设置为通过生成多个搜索串来制定出所述搜索查询,每个搜索串包 括所述N个搜索词的子集的不同组合。
本发明的第一方面提供了搜索引擎(搜索查询生成引擎),该搜索引擎被设置成 接收用户输入的搜索请求,并重新整理和混合请求中包含的项以便形成搜索查询。应注 意到,通过以该方式将输入搜索词组分成较小的分组,该搜索引擎执行的搜索更可能返 回准确的一组结果。
可以将所述搜索查询输出给本地文件索引,例如在如果所述搜索引擎是桌上型 个人电脑的部分的情况下,或者可以将所述搜索查询输出给基于服务器的文件索引或远 程数据库。
优选地,每个搜索串包括M个搜索词的不同组合,其中N>M。通常,多个搜 索串的每一个中的搜索词的数量可以在1到M之间变化。注意到,由所述搜索引擎创建 的所述搜索查询可以包含来自输入搜索请求的任何数量的搜索词。
可选地,可以将所述处理装置设置成通过确定搜索词的组合nCm制定出所述搜 索查询,每个组合是不同的搜索串。注意到,该选项将确保将输入搜索词的任何可能组 合制定成搜索查询。
作为搜索请求的上述制定的替代选择,可以将所述处理装置设置成对于包括N 个词的搜索请求根据搜索词的预确定的排列制定出所述搜索查询。例如,所述搜索引擎 可以被预编制有用于具有给定长度N的输入搜索请求的所述搜索查询的通用格式。为了 通过说明获得一个(非限制的)示例,所述搜索引擎可以接收包括6个搜索词的搜索请 求。其然后可以查找在输入搜索请求包括6个项的任何时候应当使用的那些搜索词的多 个预编制的配置。因此,一种配置可能包括项1、3、5和6,另一种可能包括项2、4和β绝绝 D寸寸ο
在所述搜索引擎包括搜索词的预确定的配置的情况下,所述处理装置可以被设置成将不同的标识符指定给在所述搜索请求中接收到的每个搜索词,所述预确定的配置 可以包括标识符的不同排列和选择。
可选地,所述处理装置可以被设置成将两个或更多搜索词组合在一起并将被分 组的词指定给单个标识符。
便利地,在所述搜索词包括文本的情况下,可以将所述处理装置设置成对所接 收的搜索词进行同义词查找,还可以将所述处理装置设置成对任意搜索词进行同义词替 换,以形成用于包括在所述搜索查询中的附加搜索串。
便利地,所述输出装置可以被设置成将所述搜索查询输出给由文件信息的索引 数据库组成的文件索引,所述处理装置可以被设置成生成呈SQL查询形式的所述搜索查 询。
便利地,所述输出装置可以被设置成将所述搜索查询输出到结构化数据源。优 选地,在将所述搜索查询输出给结构化数据源的情况下,所述搜索引擎进一步包括用于 所述结构化数据源的配置文件,所述配置文件具有涉及所述结构化数据源的连接信息, 以允许所述处理装置生成所述搜索查询。
本发明的第一方面的所述搜索引擎还可以便利地与重复数据删除引擎结合,将 该重复数据删除引擎设置成去除作为所生成的搜索查询的结果返回的重复搜索结果。便 利地,所述重复数据删除引擎被设置成将结果组输出给用户并包括搜索结果输入装 置,被设置为接收多个搜索结果,每个搜索结果包括一个或多个数据项;重复数据删除 装置,被设置为去除来自在所述搜索结果输入装置处接收的多个搜索结果的重复搜索结 果并生成结果组;存储的数据组,其包括一个或多个数据类别和遍及一个或多个数据类 别分布的一个或多个数据项;结果组输出装置,被设置为输出结果组,其中,所述重复 数据删除装置被设置成将所述存储的数据组与所述搜索结果相比较并根据下面准则确定 第一搜索结果是否是重复结果a)如果在所述存储的数据组中的全部一个或多个数据类 别的内容被确定成匹配所述第一搜索结果中的数据项,那么将所述第一搜索结果确定为 重复结果并将其丢弃;或者b)如果所述存储的数据组中的数据类别中的至少一个的内容 被确定不匹配所述第一搜索结果中的任何数据项,那么将所述第一搜索结果添加到所述 结果组。
根据第二方面,本发明提供用于将结果组输出给用户的搜索引擎,所述搜索引 擎包括输入装置,被设置为接收多个搜索结果,每个搜索结果包括一个或多个数据 项;处理装置,被设置为去除来自在所述输入装置处接收的多个搜索结果的重复搜索结 果并生成结果组;存储的数据组,其包括一个或多个数据类别和遍及一个或多个数据类 别分布的一个或多个数据项;输出装置,被设置为输出结果组,其中,所述处理装置被 设置成将所述存储的数据组与搜索结果相比较并根据下面准则确定第一搜索结果是否是 重复结果a)如果在所述存储的数据组中的一个或多个数据类别中的全部的内容被确定 成匹配所述第一搜索结果中的数据项,那么将所述第一搜索结果确定为重复结果并将其 丢弃;或者b)如果所述存储的数据组中的数据类别中的至少一个的内容被确定不匹配所 述第一搜索结果中的任何数据项,那么将所述第一搜索结果添加到所述结果组。
如上面注意到的,与公知的搜索引擎有关的主要问题中的一个是结果的重复数 据删除。本发明的第二方面提供了用于机械地去除重复结果并将结果组输出给用户的机制(在本文中也称为重复数据删除引擎)。将所接收的搜索结果与包括一个或多个数据 类别的存储的数据组相比较。当在所述存储的数据组中的内容匹配给定搜索结果中的全 部内容项时,则认为该结果是重复结果并将其丢弃。当在所述存储的数据组中的内容中 的至少一些不匹配搜索结果时,则认为搜索结果是新的搜索结果并将其添加到所述结果 组。然后将输出装置(结果组输出装置)设置成输出所述结果组(例如,给用户)。
本发明的第二方面因此提供了对被返回给搜索引擎的用户的搜索结果组进行改 进的方法。
在本发明的该方面的优选变形中,所存储的数据组包括XML字段(“XML节 点”)的数组,所接收的搜索结果或者以XML格式的形式或者被转换成XML格式。然 后可以将在所存储的数组中的每个XML字段的内容与所接收的搜索结果相比较,以确定 (i)是否搜索结果包括该字段以及Gi)如果其包括该字段,那么该字段的值是否匹配已在 所存储的数组中的值。
优选地,如果所述第一搜索结果被确定成新的结果(即,其不是重复结果)并被 添加至所述结果组,则所述处理装置(重复数据删除装置)可以被设置成将所述第一搜 索结果的一个或多个数据项添加至所述存储的数据组。这确保了当接收到进一步的搜索 结果时,将它们与已经接收到的全部前面的搜索结果的数据项相比较,从而提高系统效率。
便利地,可以将所述处理装置设置成轮流获取多个搜索结果中的每个并将它们 与存储的一组数据项相比较,以便根据前面的准则(a)和(b)确定每个搜索结果是否是重复结果。
如上注意到的,可以以所述搜索引擎能够处理的格式接收所述搜索结果。在不 能立即使用所述搜索结果的情况下,然而,所述处理装置可以被设置成将在所述输入装 置处接收的每个搜索结果转换成包括一个或多个数据类别的结构化数据格式,一个或多 个数据类别中的每一个包含数据项。例如,可以将所述搜索结果转换成XML格式,其 中,每个数据类别是XML字段(例如,地址字段),每个数据项是该字段的值(例如, 实际的街道名或邮编)。
便利地,可以以包括一个或多个数据类别的结构化数据格式的形式在所述输入 装置(搜索结果输入装置)处接收多个搜索结果,一个或多个数据类别中的每一个包括数 据项。
优选地,可以以结构化的数据组格式存储所存储的数据。例如,所述存储的数 据组可以是一排XML字段。
优选地,所述存储的数据组可以以包括一个或多个数组的数组表形式,每个数 组与数据类别关联,一个或多个数据项遍及所述一个或多个数组分布。例如,所述阵列 表可以包括多个数组(或XML字段)。
优选地,在所存储的数据是以数组表形式的情况下,可以将所述处理装置设置 成确定所述第一搜索结果是否包括所述数组表中的全部所述数据类别,而且可以将所述 处理装置设置成如果所述数组表中的所述数据类别中的任一个没有出现在所述第一搜索 结果中则将第一结果添加到所述结果组。
对于给定的搜索结果,所述数组表中的全部所述数据类别还可能出现在所述搜9索结果中。在这种情况下,所述处理装置可以被设置成将所述数组表中的每个数据类别 的内容与所述第一搜索结果中的对应数据类别的内容相比较以便确定所述第一数据类别 是否是重复结果。便利地,如果对于每一个或全部的对应数据类别,同一数据项既出现 在所述数组表中又出现在所述第一搜索结果中,则可以将所述第一搜索结果确定成重复 结果并可以将其丢弃。在该实施例中,所述数组表和搜索结果可以包含完全相同的数据 类别,例如,所述数组表可以包含三个类别,Addressl、PostCode和Contact Name,这也 出现在所述搜索结果中。为了确定该结果是否是重复结果,则可以对那些类别中的每一 个中的数据项的值进行比较,如果所述搜索结果包括匹配所述数组表中的对应类别中的 值,则可以将所述搜索结果确定成重复结果。
如果在所述数组表中的任何数据类别不与所述第一搜索结果中的对应数据类别 匹配,则可以将所述第一搜索结果确定成新结果(即,非重复结果)并可以将其添加到所 述结果组。
优选地,可以将所述处理装置设置成轮流获取多个搜索结果中的每一个并将它 们与所述数组表相比较,以便确定每个搜索结果是否是重复结果。
便利地,可以接收搜索结果或将其转换成包括一个或多个XML节点的XML格 式,一个或多个XML节点中的每一个对应于数据类别。
便利地,所述存储的数据组最初可以是空的并可以被填充有对于在所述输入装 置处接收的头两个搜索结果常见的数据项。这便利地允许所述搜索引擎以逐个搜索为基 础限定适合的数据类别。
可选地,所述存储的数据组最初可以是空的,但可以包括预限定的数据类别。 在该选项中,在开始搜索之前可以有效地对所述搜索表进行预限定。
优选地,所述搜索引擎可以进一步包括限定多个数据类别的配置文件,所述存 储的数据组中的一个或多个数据类别选自所述配置文件中的多个数据类别。
根据第三方面,本发明提供了用于生成搜索查询和用于处理所接收的搜索结果 的搜索引擎,其包括根据本发明的第一方面用于生成改进的搜索查询的搜索引擎;和 根据本发明的任何第二方面用于将结果组输出给用户的搜索引擎。
本发明的第三方面便利地提供包括本发明的第一方面的特征和第二方面的特征 的搜索引擎。注意到,本发明的第三方面可以包括本发明的第一方面和/或第二方面的 优选特征/可选特征。
根据第四方面,本发明提供了将数据源的数据结构映射到预确定的一组数据标 签的方法,所述方法包括显示一组预确定的数据标签;显示所述数据源的所述数据结 构,所述数据源的所述数据结构包括多个数据字段名;将该组数据标签与所述数据源的 所述数据结构相比较并标识与该组预确定的数据标签中的数据标签对应的数据字段名; 存储在比较步骤中标识的关系。
在本发明的上述方面中,所述搜索引擎可以为数据库构造SQL查询。为了所述 搜索引擎和数据库能够互相交互,本发明的第四方面便利地提供了将数据源(例如,数 据库)的数据结构映射到预确定的一组数据标签(例如,所述搜索引擎的数据标签)的方法。
便利地,可以以XML格式存储在比较步骤中标识的关系。优选地,所述数据源可以是数据库,所述关系可以与用于所述数据库的登录信息一起被存储。
本发明还延伸到生成搜索查询的方法和将结果组输出给用户的方法。
本发明还延伸到包含在记录介质/只读存储器/电载波信号上或存储在计算机存 储器中的计算机程序,所述计算机程序包括用于使计算机执行本发明的方法的过程的程 序指令。



为了使本发明能够得到更好地理解,现在将通过举例的方式参照以下附图
图Ia是根据本发明的实施方式的搜索引擎的桌面版本的原理图Ib是根据本发明的实施方式的搜索引擎的基于服务器的版本的原理图2是根据本发明的实施方式的搜索引擎的另一原理图3是示出了如何在根据本发明的实施方式的桌面计算机上创建搜索查询以及 处理搜索结果的流程图4是示出了如何在根据本发明的实施方式的服务器计算机上创建搜索查询以 及处理搜索结果的流程图5a示出了如何根据本发明的实施方式创建用于构造搜索查询的搜索词组合;
图示出了图5a的另一选择;
图6示出了从图5的组合构造的SQL搜索查询的实施例;
图7示出了搜索结果可如何转换成XML格式;
图8、9a和10示出了如何通过根据本发明的实施方式的搜索引擎将重复的搜索 结果从所接收到的结果中去除;
图9b是示出了用于处理根据本发明的实施方式的搜索结果的另一技术(相对于 图如的技术)的流程图11示出了根据本发明的实施方式可用于构造SQL查询的配置文件的实施例;
图12是示出了根据本发明的实施方式可如何将数据库的特征映射到搜索引擎的 特征的屏幕截图。
具体实施方式
应注意,在全部附图和以下说明书中,相似的数字用于表示相似的特征。
图Ia示出了桌面计算机。计算机1包括数据存储3 (例如硬盘驱动器),其 上存储有用户可能希望搜索的信息项;以及索引文件数据库5,包含与数据存储中感兴 趣的项相关的诸如文件名、元数据和内容信息等数据。
计算机1还包括根据本发明的实施方式的搜索引擎7。该搜索引擎具有输入装 置9,用户可以通过该输入装置输入多个搜索词(例如通过在键盘上键入文本);处理装 置10,用于将所接收到的搜索请求处理成搜索查询、或对所接收到的搜索结果(例如, 从数据库5接收到的搜索结果)进行重复数据删除;以及输出装置11,可输出一组搜索 结果以显示在例如计算机1的显示屏13上。当从用户接收到搜索请求后,搜索引擎7与 索引数据库5通信,下文将参照图3对此更详细地进行描述。
图Ib示出了本发明的一个版本,其中根据本发明的实施方式的搜索引擎位于服11务器计算机15上。应注意,在图Ia和Ib中,相似的数字用于表示相似的特征。
在图Ib中,服务器15通过电信网络17 (例如因特网或局域网)连接至两个桌面 计算机1、1’和两个其它的外部数据源(在此为数据库19、21)。
桌面1、1’分别包括数据存储3、3’和文件索引数据库5、5’。
服务器15包括根据本发明的实施方式的搜索引擎、本地文件索引23和本地数据 存储25。在使用中,服务器15可以通过输入/输出27从任何已连接的计算机源1、1’ 接收搜索请求。随后可以构造搜索查询,如下文将参照图3更详细地描述,并将构造的 搜索查询发送至文件索引5、5’、23和数据库19、21。
虽然示出的本发明的桌面版本仅连接至文件索引数据库,但应注意,搜索引擎 还能够以与图Ib中所示方式类似的方式对外部数据库进行访问。然而,为了下面的描 述,假定桌面版本仅搜索文件索引,并且搜索引擎的服务器版本搜索本地和远程文件索 引以及外部数据源。
图2示出了根据本发明的实施方式的搜索引擎的另一原理图。如图2所示,搜 索引擎7与文档、数据库和其它应用程序进行通信。搜索引擎包括多个组件,诸如促 进搜索引擎和应用程序之间的相互联系的应用程序连接器四、安全文件索引31、以及控 制用户交互的模块33和控制访问管理的模块35。如上面关于图Ia和Ib所提到的,搜索 弓丨擎可以嵌入在桌面上或可以通过网页浏览器进行访问。
应注意,在图la、Ib和图2中,处理装置10被示出为能生成搜索查询并能对所 接收到的搜索结果进行重复数据删除的单个组件。但应理解,可以存在多于一个处理装 置,例如一个用于生成搜索查询,一个用于对所接收到的结果进行重复数据删除。
还应注意,下文所述的用于生成搜索查询/搜索词组合或将结果进行重复数据 删除为结果组的搜索引擎7应该被理解为表示搜索引擎7中执行这些功能的处理装置 10 (单个或多个处理组件)。
图3是示出了包括根据本发明的实施方式的诸如图1中所示的搜索引擎7的桌面 计算机1上的搜索过程的大致流程图。
在步骤30中,搜索引擎通过输入装置9接收来自用户的搜索请求。这样的搜索 请求通常会包括多个基于文本的搜索词(例如BBC NewsArchive European space agency)。
在接收到搜索词后,搜索引擎7创建这些搜索词的子集的多个组合。例如,在 上面的搜索请求中存在六个单独的词。因此,在步骤32中,搜索引擎可以创建高达例如 四个词汇的多个群。这种搜索词组合的创建增加了返回一组准确的结果的机会。下面参 照图5更详细地描述搜索词组合的创建。
在步骤34中,将这些搜索词组合结合为单个搜索查询(例如以基本的SQL格 式),该搜索查询随后可被发送至文件索引数据库5。图虹中示出了一般的SQL查询的 实施例。
步骤30至34(图3中的虚线35上方)是根据本发明第一个方面的搜索查询的生 成。步骤36、38和40(图3中的虚线35下方)是根据本发明第二个方面将结果组输出 至用户。
在步骤36中,搜索引擎7从文件索引5接收多个搜索结果。这些结果可以XML 格式接收或通过该搜索引擎转换成XML格式,如下面关于图7所述。
在步骤38中,将XML结果的各个元(或节点)与所存储的节点相比较,以去除 重复的搜索结果。下文将参照图8至10详细地描述这一过程。唯一的搜索结果在步骤 38中被合并为结果组,并随后(在步骤40中)被输出至用户。
图4是示出了类似于图3的处理的流程图,除了图4中的搜索引擎7位于服务器 15并能够访问保存在外部数据库19、21中的数据。与图3相同的处理步骤使用相同的参 考标号表示。应注意,图4所提到的文件索引可以是服务器上的本地索引23,也可以是 保存在远程放置的用户计算机上的文件索引5。
在接收到用户输入的搜索词后,和图3—样,图4中的搜索引擎创建搜索词组合 (步骤32),创建搜索查询(34),接收搜索结果(步骤36),对结果进行重复数据删除(步 骤38),并且输出结果组(步骤40)。
然而,在步骤30中接收搜索词还导致,在步骤42中,搜索引擎7对存储有外部 数据库19,21的详细信息的数据库配置文件进行解密,其中搜索引擎可以访问该外部数 据库以便该搜索引擎能够创建该数据库的数据库查询(除了步骤34中对文件索引的SQL 查询之外)。
在解密配置文件之后,在步骤44中创建数据库报告SQL并将其发送至数据库 (图6中示出了实施例SQL)。随后搜索引擎前进至步骤36,并且数据库结果与来自文件 索引的结果合并并以相同方式处理。
相比于图3和4中所示的步骤32,图5a更加详细地示出了创建各搜索词组合的 过程。在图5a中所示出的各处理框旁边是基于先前提到的搜索请求“BBC NewsArchive European Space agency” 的处理实施例。
如图3和4所示,在步骤30中,用户首先将其搜索词输入其计算机的显示器13 的显示窗。随后在步骤46中,搜索引擎将搜索词置于已编号的数组,从而使各搜索词与 其自身的数字标识符(在此例中为“1”至“6”)关联。
在步骤48中,搜索引擎检索六个搜索词的输入串的已存储的搜索短语排列,并 且在步骤50中按照已存储排列对当前搜索词进行排列。
步骤50的输出是搜索词的九个不同组合(九个不同的搜索串),这九个组合可以 被置于搜索查询中(图3和4中的步骤34)。
可选地,在步骤52中,搜索引擎7还可以执行同义词查找并基于该查找结果进 一步创建搜索组合。在这种情况下,搜索组合1和3包括的词“BBC”可以被扩展为"British Broadcasting Corporation”,因此产生可以被置于搜索查询中的另两个搜索词组 合(另两个搜索串)(按照图3和4中的步骤34)。
应注意,除了如上所述的创建搜索词组合的过程之外,根据本发明的实施方式 的系统还可以处理复杂的搜索查询组合,例如
BBC+News+Archive European space agency
在该实施方式中,搜索引擎不会排列词汇“BBC News Archive”的位置(并将 其作为单个的搜索词来处理),但会排列词汇“European”,"space"和“iigency”的位置。图恥中示出了本发明的这种变体,以及在其中选择替换词的另一变体。
图6示出了 SQL查询的实施例,该查询可以从图5a示出的i^一个搜索组合中构造。
应注意,根据本发明的实施方式,可以基于用户的喜好对输入搜索请求时所使 用的搜索语言进行配置。例如,搜索语言的实施例可以为
SELECT TEXT = ‘ Text to Search'
STARTDATE = ' ADate'
END DATE = ' A Date'
AUTHOR = ' Author Name'
FILENAME = ' AFilename'
在该实施例中,可以改变搜索条件(以斜体示出)以适应特定组织的数据结构, 例如AUTHOR可以被替换为CUSTOMERNUMBER。
发送至文件索引/外部数据库的SQL查询的输出是SQL返回。图7是两个结 果的这种返回的格式的实施例。该返回可以是XML可兼容的格式,但如果不是XML格 式,其能够以下列两种方式中的一种转换为XML格式
1)对于输出中的每个结果,可以将fieldname(字段名)数据标准化为符合XML 语法的元素名;或
2)可以查询存储在计算机上的映射文件,其中该计算机包含字段名和XML元素 之间的关系。随后可将每个字段中的数据输出映射至XML元素并且添加到输出。随后 可将每个元素以结束语结束。
图8示出由根据本发明的实施方式的搜索引擎接收的三个XML搜索结果。每个 XML结果包括多个类或节点,其中的每个类或节点均包含(或可包含)搜索数据。应注 意的是,图8中的XML结果是图7所示的通用格式的示例。
以XML结果1为示例,节点是“reference(引用)”、“Company-name(公司 名称)”、“ creditLimit (信用额度)”、“ IastInvoice (最后进票)”、“ outstanding (未 清帐的)”、"60Days (60 天),,和"90Days (90 天),,。
这些节点的每一个都与各种搜索数据相关,例如“creditLimit”节点包含值 “100,000” 而 “outstanding” 节点包含值 “3000.00”。
由搜索引擎进行的搜索结果的重复数据删除处理将参照图9a的流程图与图10的 数组表进行描述。
在图如的步骤36中,接收XML搜索结果。应注意的是,该结果可转换成XML 格式,如与图7有关的上文所述。
在步骤60中,前两个XML结果被选中,在步骤62中,识别公共的类。在这种 情况下,应注意节点“reference”和“Company-name”是这两个结果共有的,而搜索引擎取这两个节点并创建两个数组保存这些公共节点的值。
然后在步骤64中,搜索引擎7从结果1和结果2中包含的节点中随机选择多达 三个的进一步的节点标识符,并对这些节点创建进一步的数组。还应注意的是,搜索引 擎可持有配置文件(如下文关于图11和图12的描述),该文件详细说明存在于文件索引 /外部数据库中的各种节点标识符,并且上述的进一步的节点标识符可从该配置文件中选 出。在任何情况下,应注意的是,存在于结果1和结果2中的节点将存在于任何这样的 配置文件中。
步骤60、62和64的结果是图10所示的数组表100。可以看出,在这个示例中搜14索引擎已经从XML结果2选择了节点“AddreSS2(地址2)”,从XML结果2选择了节点 “postcode (邮政编码)”,以及从XML结果1选择了节点“creditLimit (信用额度)”。
应注意,结果1和结果2中的这些节点包含的各个搜索数据已被添加到数组表100(步骤 66)。应注意的是,在重复数据删除处理中比较的节点数可取决于搜索引擎的设置或 搜索的背景而改变。例如,如果正在搜索邮件,则系统可被设为仅搜索少数元数据(例 如“寄信人”、“日期”、“主题”、“标识”字段)。或者,可仅搜索单独的元数据 项(例如“标识”)。相比之下,如果正在搜索会计应用,则搜索更多的字段可能是适 当的(例如“客户”、“供应商”、“债务总额”、“当前地址”、“最后订单”等)。然后,搜索引擎开始相对于数组表检查每个搜索结果的过程,以确定结果是否 为重复条目。因此,在步骤68中搜索引擎取XML结果2,并在步骤70中相对于数组表100所包含的节点检查结果2的节点。当每个节点中持有的搜索数据与数组表中的值相匹配 时,搜索引擎指定其为“真”。当每个节点中持有的搜索数据与数组表中的值不匹配 时,搜索引擎指定其为“假”。步骤70中的检查功能由图10中的数组表102表示,其中可看出XML结果2的 搜索数据与数组1和数组2匹配,但与数组3至数组5不匹配。当搜索引擎确定XML结果包括与数组表中的每个节点所匹配的搜索数据时,该 结果被认为是重复的并且在步骤72中将其丢弃。当搜索引擎确定XML结果不包括与数组表中的每个节点所匹配的搜索数据时, 在步骤74中将该结果添加至结果集。在步骤72/74之后,搜索引擎移动至下一个搜索结果(在步骤76中),然后循环 返回至步骤70以检查下一个搜索结果的节点中持有的搜索数据。当搜索结果添加至结果集后,结果2内包含的搜索数据被添加至数组表。这在 图10的数组表104中示出,其中添加的来自结果2的搜索数据以斜体字示出,而来自步 骤62的搜索数据以粗体字示出。在图9的处理对结果3重复之后,在步骤70中创建数组表106。可以看出,结 果3不是重复结果,因为数组1、数组2和数组5被视为假。由于结果3不是重复结果,因此将其搜索数据添加至数组表,如前参照结果2 所述。在图10中可看到由此产生的数组表108,其中,除了来自早期的数组表104的搜 索数据之外,表108包括reference节点的值“123”和Company-name节点的值“Total Information AccessItd”。图9b是流程图,示出根据本发明的实施方式的用于处理搜索结果的可选择的技 术(相对于图9a)。在图9b中,数组表内包含的节点是预先确定的,这意味着在图9a中 示出的步骤60至步骤66不是必需的。回到图9b,XML搜索结果在步骤36中被接收。在步骤78中,XML结果1中包含的值被添加至数组表(在具有公共节点的范围 内)。由于XML结果1是第一个结果,其不可能为重复结果,因此,在步骤80中将其 发送给用户
在步骤82中,选择所接收的搜索结果中的下一个结果,并在步骤84中针对数组 表内的值对其进行检查。应注意的是,该检查步骤与关于图10的上文所述相同。如果数组表中的所有数组返回“真”指示,该结果被认为是重复的,并在步骤 86中丢弃。然后,搜索引擎7返回步骤82并选择下一个结果。如果任何数组返回“假”指示,则结果不是重复的。在步骤88中将目前结果 的值添加至数组表中,在步骤90中将该结果发送至用户。然后,搜索引擎返回步骤82 并选择下一个结果。因此,图9a示出一种实施方式,其中数组表被例如用户预定义,还示出一种实 施方式,其中当结果被处理后返回给用户。图11和图12分别示出可由根据本发明的实施方式的搜索 引擎7用来构建上述的 SQL查询的示例的配置文件、以及能够创建该配置文件的数据映射功能的屏幕截图。图11的配置文件可在搜索引擎被安装时由管理员创建。正如从图中可以看出, 该配置文件是包含各种信息的简单的XML文件,包含的各种信息即1)数据库登录信息(见用户名120与密码122的详细资料);2)系统访问级别;3)数据库之间的映射关系,即搜索引擎访问在重复数据删除处理中使用的XML 元素的数据库,见参考数字124;4)用于SQL查询的初始SQL 126。应注意的是,在任何一个配置文件中会有一个或多个这样的数据库连接。映射关系一般由配置文件的区域124示出。应注意的是,在右侧示出了数据库 字段128,在左侧示出了搜索引擎/配置字段130。图12示出构建配置文件的机制,该机制示出了被连接到搜索引擎的数据库的数 据结构、搜索引擎/配置字段名称、以及数据结构与字段名称之间的映射关系。为了建立配置文件中的映射,用户在窗口区域140中显示待查询的数据库的数 据结构。配置字段名称显示在窗口区域142中,用户依次选择每一个字段名称,然后扫 描数据结构列表以识别相应的字段名称。以这种方式,数据库与搜索引擎结构的关系可 被映射,并且每个联系可存储于窗口区域144中。应注意的是,通过选择按钮146然后浏览计算机系统寻找待查询的数据库可添 加进一步的数据库。用户特定的SQL命令可以通过窗口区域148添加。可以理解的是,上述的实施方式仅通过示例方式给定并不是为了限制本发明, 本发明的范围由所附的权利要求书限定,还将理解的是所描述的实施方式可以单独或联 合使用。
权利要求
1.一种用于生成改进的搜索查询的搜索引擎,所述引擎包括 用于接收搜索请求的输入装置,所述搜索请求包括N个搜索词; 处理装置,被设置为根据所接收的搜索请求制定出搜索查询; 输出装置,被设置为输出所述搜索查询,其中,所述处理装置被设置为通过生成多个搜索串来制定出所述搜索查询,每个搜 索串包括所述N个搜索词的子集的不同组合。
2.根据权利要求1所述的搜索引擎,其中,每个搜索串包括M个搜索词的不同组 合,其中N>M。
3.根据权利要求2所述的搜索引擎,其中,所述多个搜索串中的每一个中的搜索词的 数量在1到M之间变化。
4.根据权利要求2或3所述的搜索引擎,其中,所述处理装置被设置为通过确定搜索 词的组合nCm制定出所述搜索查询,每个组合是不同的搜索串。
5.根据任一个前述权利要求所述的搜索引擎,其中,所述处理装置被设置为对于包 括N个词的搜索请求根据搜索词的预确定的设置制定出所述搜索查询。
6.根据权利要求5所述的搜索引擎,其中,所述处理装置被设置为将不同的标识符指 定给在所述搜索请求中接收到的每个搜索词,所述预确定的设置包括标识符的不同排列 和选择。
7.根据权利要求6所述的搜索引擎,其中,所述处理装置被设置为将两个或更多个搜 索词分组在一起,并将被分在一组的词指定给单个标识符。
8.根据任一个前述权利要求所述的搜索引擎,其中,所述搜索词包括文本,并且所 述处理装置被设置为对所接收的搜索词进行同义词查找。
9.根据权利要求8所述的搜索引擎,其中,所述处理装置被设置为将任意搜索词替换 为其同义词,以形成包括在所述搜索查询中的附加搜索串。
10.根据任一个前述权利要求所述的搜索引擎,其中,所述输出装置被设置为将所述 搜索查询输出给文件索引,所述文件索引包括文件信息的索引数据库,所述处理装置被 设置为以SQL查询形式生成所述搜索查询。
11.根据任一个前述权利要求所述的搜索引擎,其中,所述输出装置被设置成将所述 搜索查询输出到结构化数据源。
12.根据权利要求11所述的搜索引擎,进一步包括数据源,所述数据源包括用于所述结构化数据源的配置文件,所述配置文件具有与 所述结构化数据源有关的连接信息,以允许所述处理装置生成所述搜索查询。
13.一种用于生成搜索查询和用于处理所接收的搜索结果的搜索引擎,包括 根据权利要求1到12中任一项所述的用于生成改进的搜索查询的搜索引擎;和 用于将结果组输出给用户的重复数据删除引擎,所述重复数据删除引擎包括 搜索结果输入装置,被设置为接收多个搜索结果,每个搜索结果包括一个或多个数据项;重复数据删除装置,被设置为从在所述搜索结果输入装置处接收的多个搜索结果中 去除重复搜索结果并生成结果组;存储的数据组,其包括一个或多个数据类别和遍及所述一个或多个数据类别分布的一个或多个数据项;结果组输出装置,被设置为输出所述结果组,其中,所述重复数据删除装置被设置成将所述存储的数据组与所述搜索结果相比较 并根据以下准则确定第一搜索结果是否是重复结果a)如果所述存储的数据组中全部所述一个或多个数据类别的内容被确定为与所述第 一搜索结果中的数据项匹配,那么将所述第一搜索结果确定为重复结果并将其丢弃;或 者b)如果所述存储的数据组中的至少一个数据类别中的内容被确定为与所述第一搜索 结果中的任何数据项不匹配,那么将所述第一搜索结果添加到所述结果组。
14.一种用于将结果组输出给用户的搜索引擎,所述搜索引擎包括输入装置,被设置为接收多个搜索结果,每个搜索结果包括一个或多个数据项;处理装置,被设置为从在所述输入装置处接收的所述多个搜索结果中去除重复搜索 结果并生成结果组;存储的数据组,其包括一个或多个数据类别和遍及所述一个或多个数据类别分布的 一个或多个数据项;输出装置,被设置为输出所述结果组,其中,所述处理装置被设置成将所述存储的数据组与所述搜索结果相比较并根据以 下准则确定第一搜索结果是否是重复结果a)如果在所述存储的数据组中的全部所述一个或多个数据类别的内容被确定为与 所述第一搜索结果中的数据项匹配,那么将所述第一搜索结果确定为重复结果并将其丢 弃;或者b)如果所述存储的数据组中的至少一个数据类别的内容被确定为与所述第一搜索结 果中的任何数据项不匹配,那么将所述第一搜索结果添加到所述结果组。
15.根据权利要求14所述的搜索引擎,其中,如果将所述第一搜索结果添加给所述结 果组,则所述处理装置被设置成将所述第一搜索结果中的所述一个或多个数据项添加至 所述存储的数据组。
16.根据权利要求14或权利要求15所述的搜索引擎,其中,所述处理装置被设置成 依次获取所述多个搜索结果中的每一个并将它们与所述存储的数据组相比较,以便根据 权利要求14的准则(a)和(b)确定每个搜索结果是否是重复结果。
17.根据权利要求14到16中的任一项所述的搜索引擎,其中所述处理装置被设置成 将在所述输入装置处接收的每个搜索结果转换成包括一个或多个数据类别的结构化数据 格式,所述一个或多个数据类别中的每一个包括数据项。
18.根据权利要求14到16中的任一项所述的搜索引擎,其中以包括一个或多个数据 类别的结构化数据格式的形式接收在所述输入装置处接收的所述多个搜索结果,所述一 个或多个数据类别中的每一个包括数据项。
19.根据权利要求14到18中任一项所述的搜索引擎,其中,所存储的数据以结构化 数据组的格式存储。
20.根据权利要求14到19中任一项所述的搜索引擎,其中,所述存储的数据组是以 包括一个或多个数组的数组表的形式,每个数组与数据类别关联,所述一个或多个数据项遍及所述一个或多个数组分布。
21.根据权利要求20所述的搜索引擎,其中,所述处理装置被设置为确定所述第一搜 索结果是否包括所述数组表中的全部所述数据类别。
22.根据权利要求21所述的搜索引擎,其中,所述处理装置被设置为如果所述数组表 中的任一数据类别没有出现在所述第一搜索结果中则将所述第一搜索结果添加到所述结 果组。
23.根据权利要求20或21所述的搜索引擎,其中,如果所述数组表中的全部所述数 据类别都出现在所述第一搜索结果中,则所述处理装置被设置成将所述数组表中的每个 数据类别的内容与所述第一搜索结果中的对应数据类别的内容相比较以便确定所述第一 数据类别是否是重复结果。
24.根据权利要求23所述的搜索引擎,其中,对于每一个且全部的对应数据类别,如 果同一数据项出现在所述数组表中和所述第一搜索结果中,则将所述第一搜索结果确定 成重复结果并将其丢弃。
25.根据权利要求23或24所述的搜索引擎,其中,如果在所述数组表中的任意数据 类别与所述第一搜索结果中的对应数据类别不匹配,则将所述第一搜索结果添加到所述 结果组。
26.根据权利要求20到25中任一项所述的搜索引擎,其中,所述处理装置被设置成 依次获取所述多个搜索结果中的每一个并将它们与所述数组表相比较,以便确定每个搜 索结果是否是重复结果。
27.根据权利要求14到26中任一项所述的搜索引擎,其中,搜索结果被接收或转换 为包括一个或多个XML节点的XML格式,所述一个或多个XML节点中的每一个对应于 数据类别。
28.根据权利要求14到27中任一项所述的搜索引擎,其中,所述存储的数据组最初 是空的并被填充有在所述输入装置处接收的头两个搜索结果共有的数据项。
29.根据权利要求14到27中任一项所述的搜索引擎,其中,所述存储的数据组最初 是空的并包括预限定的数据类别。
30.根据权利要求14到29中任一项所述的搜索引擎,进一步包括限定多个数据类别的配置文件,所述存储的数据组中的所述一个或多个数据类别选 自所述配置文件中的所述多个数据类别。
31.一种用于生成搜索查询和用于处理所接收的搜索结果的搜索引擎,包括根据权利要求1到12中任一项所述的用于生成改进的搜索查询的搜索引擎;和根据权利要求14到30中任一项所述的用于将结果组输出给用户的搜索引擎。
32.一种将数据源的数据结构映射到预确定的一组数据标签的方法,所述方法包括显示一组预确定的数据标签;显示所述数据源的所述数据结构,所述数据源的所述数据结构包括多个数据字段名;将所述一组数据标签与所述数据源的所述数据结构相比较,并识别与所述一组预确 定的数据标签中的数据标签对应的数据字段名;存储在比较步骤中识别的关系。
33.根据权利要求32所述的方法,其中,在比较步骤中标识的关系以XML格式存储。
34.根据权利要求32或33所述的方法,其中,所述数据源是数据库。
35.根据权利要求34所述的方法,其中,所述关系与用于所述数据库的登录信息一起 被存储。
全文摘要
一种用于生成改进的搜索查询的搜索引擎,该引擎包括用于接收搜索请求的输入装置,所述搜索请求包括N个搜索词;处理装置,被设置为根据所接收的搜索请求制定出搜索查询;输出装置,被设置为输出所述搜索查询,其中,所述处理装置被设置为通过生成多个搜索串来制定出所述搜索查询,每个搜索串包括所述N个搜索词的子集的不同组合。
文档编号G06F17/30GK102027471SQ200980117385
公开日2011年4月20日 申请日期2009年3月12日 优先权日2008年3月13日
发明者西蒙·伊恩·贝恩 申请人:商业合伙人有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1