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

文档序号:6632158阅读:103来源:国知局
改进的搜索引擎的制作方法
【专利摘要】一种用于生成改进的搜索查询的搜索引擎,该引擎包括:用于接收搜索请求的输入装置,所述搜索请求包括N个搜索词;处理装置,被设置为根据所接收的搜索请求制定出搜索查询;输出装置,被设置为输出所述搜索查询,其中,所述处理装置被设置为通过生成多个搜索串来制定出所述搜索查询,每个搜索串包括所述N个搜索词的子集的不同组合。
【专利说明】改进的搜索引擎
[0001]本申请为题为“改进的搜索引擎”的中国专利申请的分案申请,该中国专利申请的申请号为200980117385.7,申请日为2009年3月12日。

【技术领域】
[0002]本发明涉及改进的搜索引擎。更具体地,本发明涉及用于创建从文件索引或远程数据源检索搜索查询的改进的搜索引擎,本发明还涉及用于从接收到的搜索结果中去除重复条目的改进的重复数据删除处理。

【背景技术】
[0003]搜索引擎是信息检索系统,其允许计算机系统的用户指定与感兴趣的项相关的标准,即,“搜索词”,并使搜索引擎找到匹配的项。在文本搜索引擎如谷歌中,搜索查询通常表示为一组词汇。
[0004]为了加快搜索进程,搜索引擎通常会在被称为索引的过程中预先收集关于项组的元数据。索引通常需要较小的计算机存储量,并提供使搜索引擎计算项目相关性的基础。
[0005]桌面搜索是搜索用户的硬盘驱动器内容而不是互联网的搜索工具的名称。这种工具可能找到包括网页浏览器历史、电子邮件档案、文本文件、声音文件等的信息。这种搜索工具可能非常快,但可能不搜索整个硬盘驱动器。例如,只搜索操作系统的特定应用程序(例如微软文件、文件夹),而可能不包括电子邮件或联系人数据库中包含的信息。
[0006]由于大量的公司数据可被存储在非结构化数据中(例如,用户创建的目录结构),因此桌面搜索引擎工作能够在计算机的所有区域内搜索是很重要的。
[0007]桌面搜索引擎建立和维护索引数据库以优化搜索性能。当计算机处于空闲状态时进行索引,搜索引擎一般收集与文件名/目录名、例如标题或作者等元数据、以及所支持的数据项/文件的内容相关的信息。桌面搜索工具的实例是由微软发布的用于1111(10旧操作平台的编制索引的桌面搜索平台“1111(10” 36211x11”。
[0008]网络搜索引擎提供搜索互联网上的信息的接口。网络搜索引擎通过存储与大量网页相关的信息而运行,这些信息由跟踪其所见的每个链接的自动的网页浏览器网络爬虫检索。然后,每页的内容被编制索引并存储在以后查询所使用的索引数据库中。当用户例如通过使用关键词在搜索引擎中键入查询时,网络搜索引擎检查其索引并根据其标准提供最匹配网页的列表。大多数搜索引擎都支持布尔运算符“八冊(与)”、“01^或)”、“勵1(非)”以进一步指定搜索,一些引擎提供允许用户指定关键词之间的距离的近似搜索。
[0009]鉴于目前互联网的规模和发展速度,初始搜索查询是相关的、以便返回相关的搜索结果是重要的。搜索引擎的效用还取决于返回的结果集的相关性,目前的搜索引擎的一个主要问题是结果集包含重复搜索结果的趋势。
[0010]目前通过哈希算法处理搜索结果的重复数据删除,其中由哈希算法处理每个数据块,从而生成存储在索引中的唯一编号。当一个数据块接收到哈希数时,将这个数与其他现有的哈希数的索引进行比较。如果哈希数已经存在于索引中,则该数据块被认为是重复的并不被存储。否则,将新的哈希数添加到索引并存储新数据。然而,在某些情况下,哈希算法可能为两个不同的数据块生成相同的哈希数。当这样的哈希冲突发生时,系统将不会存储新的数据,因为系统认为其哈希数已经存在于数据索引中。这种误报可导致数据丢失。还应注意的是哈希算法是复杂的。
[0011]搜索引擎的已知的另一个缺点是其可搜索的数据源的类型限制。传统地,搜索引擎对非结构化数据源编制索引并进行搜索。因此,被约束在如数据库的结构化数据存储中的大量数据不能由传统的搜索引擎访问。如果结构化数据被单独编制索引,则该索引可提供给搜索引擎,但是对于已经在其自身结构内的编入索引的数据,这会产生进一步的数据存储。
[0012]因此,本发明的目的是提供一种搜索引擎,该搜索引擎可克服或本质上缓和现有技术的上述问题。


【发明内容】

[0013]根据第一方面,本发明提供了用于生成改进的搜索查询的搜索引擎,该引擎包括:用于接收搜索请求的输入装置,所述搜索请求包括~个搜索词;处理装置,被设置为根据所接收的搜索请求制定出搜索查询;输出装置,被设置为输出所述搜索查询,其中,所述处理装置被设置为通过生成多个搜索串来制定出所述搜索查询,每个搜索串包括所述~个搜索词的子集的不同组合。
[0014]本发明的第一方面提供了搜索引擎(搜索查询生成引擎),该搜索引擎被设置成接收用户输入的搜索请求,并重新整理和混合请求中包含的项以便形成搜索查询。应注意至I』,通过以该方式将输入搜索词组分成较小的分组,该搜索引擎执行的搜索更可能返回准确的一组结果。
[0015]可以将所述搜索查询输出给本地文件索引,例如在如果所述搜索引擎是桌上型个人电脑的部分的情况下,或者可以将所述搜索查询输出给基于服务器的文件索引或远程数据库。
[0016]优选地,每个搜索串包括1个搜索词的不同组合,其中心1。通常,多个搜索串的每一个中的搜索词的数量可以在1到1之间变化。注意到,由所述搜索引擎创建的所述搜索查询可以包含来自输入搜索请求的任何数量的搜索词。
[0017]可选地,可以将所述处理装置设置成通过确定搜索词的组合\^制定出所述搜索查询,每个组合是不同的搜索串。注意到,该选项将确保将输入搜索词的任何可能组合制定成搜索查询。
[0018]作为搜索请求的上述制定的替代选择,可以将所述处理装置设置成对于包括~个词的搜索请求根据搜索词的预确定的排列制定出所述搜索查询。例如,所述搜索引擎可以被预编制有用于具有给定长度~的输入搜索请求的所述搜索查询的通用格式。为了通过说明获得一个(非限制的)示例,所述搜索引擎可以接收包括6个搜索词的搜索请求。其然后可以查找在输入搜索请求包括6个项的任何时候应当使用的那些搜索词的多个预编制的配直。因此,一种配直可能包括项1、3、5和6,另一种可能包括项2、4和6等等。
[0019]在所述搜索引擎包括搜索词的预确定的配置的情况下,所述处理装置可以被设置成将不同的标识符指定给在所述搜索请求中接收到的每个搜索词,所述预确定的配置可以包括标识符的不同排列和选择。
[0020]可选地,所述处理装置可以被设置成将两个或更多搜索词组合在一起并将被分组的词指定给单个标识符。
[0021]便利地,在所述搜索词包括文本的情况下,可以将所述处理装置设置成对所接收的搜索词进行同义词查找,还可以将所述处理装置设置成对任意搜索词进行同义词替换,以形成用于包括在所述搜索查询中的附加搜索串。
[0022]便利地,所述输出装置可以被设置成将所述搜索查询输出给由文件信息的索引数据库组成的文件索引,所述处理装置可以被设置成生成呈301查询形式的所述搜索查询。
[0023]便利地,所述输出装置可以被设置成将所述搜索查询输出到结构化数据源。优选地,在将所述搜索查询输出给结构化数据源的情况下,所述搜索引擎进一步包括用于所述结构化数据源的配置文件,所述配置文件具有涉及所述结构化数据源的连接信息,以允许所述处理装置生成所述搜索查询。
[0024]本发明的第一方面的所述搜索引擎还可以便利地与重复数据删除引擎结合,将该重复数据删除引擎设置成去除作为所生成的搜索查询的结果返回的重复搜索结果。便利地,所述重复数据删除引擎被设置成将结果组输出给用户并包括:搜索结果输入装置,被设置为接收多个搜索结果,每个搜索结果包括一个或多个数据项;重复数据删除装置,被设置为去除来自在所述搜索结果输入装置处接收的多个搜索结果的重复搜索结果并生成结果组;存储的数据组,其包括一个或多个数据类别和遍及一个或多个数据类别分布的一个或多个数据项;结果组输出装置,被设置为输出结果组,其中,所述重复数据删除装置被设置成将所述存储的数据组与所述搜索结果相比较并根据下面准则确定第一搜索结果是否是重复结果如果在所述存储的数据组中的全部一个或多个数据类别的内容被确定成匹配所述第一搜索结果中的数据项,那么将所述第一搜索结果确定为重复结果并将其丢弃;或者幻如果所述存储的数据组中的数据类别中的至少一个的内容被确定不匹配所述第一搜索结果中的任何数据项,那么将所述第一搜索结果添加到所述结果组。
[0025]根据第二方面,本发明提供用于将结果组输出给用户的搜索引擎,所述搜索引擎包括:输入装置,被设置为接收多个搜索结果,每个搜索结果包括一个或多个数据项;处理装置,被设置为去除来自在所述输入装置处接收的多个搜索结果的重复搜索结果并生成结果组;存储的数据组,其包括一个或多个数据类别和遍及一个或多个数据类别分布的一个或多个数据项;输出装置,被设置为输出结果组,其中,所述处理装置被设置成将所述存储的数据组与搜索结果相比较并根据下面准则确定第一搜索结果是否是重复结果如果在所述存储的数据组中的一个或多个数据类别中的全部的内容被确定成匹配所述第一搜索结果中的数据项,那么将所述第一搜索结果确定为重复结果并将其丢弃;或者幻如果所述存储的数据组中的数据类别中的至少一个的内容被确定不匹配所述第一搜索结果中的任何数据项,那么将所述第一搜索结果添加到所述结果组。
[0026]如上面注意到的,与公知的搜索引擎有关的主要问题中的一个是结果的重复数据删除。本发明的第二方面提供了用于机械地去除重复结果并将结果组输出给用户的机制(在本文中也称为重复数据删除引擎)。将所接收的搜索结果与包括一个或多个数据类别的存储的数据组相比较。当在所述存储的数据组中的内容匹配给定搜索结果中的全部内容项时,则认为该结果是重复结果并将其丢弃。当在所述存储的数据组中的内容中的至少一些不匹配搜索结果时,则认为搜索结果是新的搜索结果并将其添加到所述结果组。然后将输出装置(结果组输出装置)设置成输出所述结果组(例如,给用户)。
[0027]本发明的第二方面因此提供了对被返回给搜索引擎的用户的搜索结果组进行改进的方法。
[0028]在本发明的该方面的优选变形中,所存储的数据组包括XII字段(“XII节点”)的数组,所接收的搜索结果或者以XII格式的形式或者被转换成XII格式。然后可以将在所存储的数组中的每个XII字段的内容与所接收的搜索结果相比较,以确定(1)是否搜索结果包括该字段以及(11)如果其包括该字段,那么该字段的值是否匹配已在所存储的数组中的值。
[0029]优选地,如果所述第一搜索结果被确定成新的结果(即,其不是重复结果)并被添加至所述结果组,则所述处理装置(重复数据删除装置)可以被设置成将所述第一搜索结果的一个或多个数据项添加至所述存储的数据组。这确保了当接收到进一步的搜索结果时,将它们与已经接收到的全部前面的搜索结果的数据项相比较,从而提高系统效率。
[0030]便利地,可以将所述处理装置设置成轮流获取多个搜索结果中的每个并将它们与存储的一组数据项相比较,以便根据前面的准则仏)和(13)确定每个搜索结果是否是重复结果。
[0031〕 如上注意到的,可以以所述搜索引擎能够处理的格式接收所述搜索结果。在不能立即使用所述搜索结果的情况下,然而,所述处理装置可以被设置成将在所述输入装置处接收的每个搜索结果转换成包括一个或多个数据类别的结构化数据格式,一个或多个数据类别中的每一个包含数据项。例如,可以将所述搜索结果转换成XII格式,其中,每个数据类别是XII字段(例如,地址字段),每个数据项是该字段的值(例如,实际的街道名或邮编)。
[0032]便利地,可以以包括一个或多个数据类别的结构化数据格式的形式在所述输入装置(搜索结果输入装置)处接收多个搜索结果,一个或多个数据类别中的每一个包括数据项。
[0033]优选地,可以以结构化的数据组格式存储所存储的数据。例如,所述存储的数据组可以是一排XII字段。
[0034]优选地,所述存储的数据组可以以包括一个或多个数组的数组表形式,每个数组与数据类别关联,一个或多个数据项遍及所述一个或多个数组分布。例如,所述阵列表可以包括多个数组(或XII字段)。
[0035]优选地,在所存储的数据是以数组表形式的情况下,可以将所述处理装置设置成确定所述第一搜索结果是否包括所述数组表中的全部所述数据类别,而且可以将所述处理装置设置成如果所述数组表中的所述数据类别中的任一个没有出现在所述第一搜索结果中则将第一结果添加到所述结果组。
[0036]对于给定的搜索结果,所述数组表中的全部所述数据类别还可能出现在所述搜索结果中。在这种情况下,所述处理装置可以被设置成将所述数组表中的每个数据类别的内容与所述第一搜索结果中的对应数据类别的内容相比较以便确定所述第一数据类别是否是重复结果。便利地,如果对于每一个或全部的对应数据类别,同一数据项既出现在所述数组表中又出现在所述第一搜索结果中,则可以将所述第一搜索结果确定成重复结果并可以将其丢弃。在该实施例中,所述数组表和搜索结果可以包含完全相同的数据类别,例如,所述数组表可以包含三个类别,八4081:(30(16和03111:51(31:版11116,这也出现在所述搜索结果中。为了确定该结果是否是重复结果,则可以对那些类别中的每一个中的数据项的值进行比较,如果所述搜索结果包括匹配所述数组表中的对应类别中的值,则可以将所述搜索结果确定成重复结果。
[0037]如果在所述数组表中的任何数据类别不与所述第一搜索结果中的对应数据类别匹配,则可以将所述第一搜索结果确定成新结果(即,非重复结果)并可以将其添加到所述结果组。
[0038]优选地,可以将所述处理装置设置成轮流获取多个搜索结果中的每一个并将它们与所述数组表相比较,以便确定每个搜索结果是否是重复结果。
[0039]便利地,可以接收搜索结果或将其转换成包括一个或多个XII节点的XII格式,一个或多个XII节点中的每一个对应于数据类别。
[0040]便利地,所述存储的数据组最初可以是空的并可以被填充有对于在所述输入装置处接收的头两个搜索结果常见的数据项。这便利地允许所述搜索引擎以逐个搜索为基础限定适合的数据类别。
[0041]可选地,所述存储的数据组最初可以是空的,但可以包括预限定的数据类别。在该选项中,在开始搜索之前可以有效地对所述搜索表进行预限定。
[0042]优选地,所述搜索引擎可以进一步包括限定多个数据类别的配置文件,所述存储的数据组中的一个或多个数据类别选自所述配置文件中的多个数据类别。
[0043]根据第三方面,本发明提供了用于生成搜索查询和用于处理所接收的搜索结果的搜索引擎,其包括:根据本发明的第一方面用于生成改进的搜索查询的搜索引擎;和根据本发明的任何第二方面用于将结果组输出给用户的搜索引擎。
[0044]本发明的第三方面便利地提供包括本发明的第一方面的特征和第二方面的特征的搜索引擎。注意到,本发明的第三方面可以包括本发明的第一方面和/或第二方面的优选特征/可选特征。
[0045]根据第四方面,本发明提供了将数据源的数据结构映射到预确定的一组数据标签的方法,所述方法包括:显示一组预确定的数据标签;显示所述数据源的所述数据结构,所述数据源的所述数据结构包括多个数据字段名;将该组数据标签与所述数据源的所述数据结构相比较并标识与该组预确定的数据标签中的数据标签对应的数据字段名;存储在比较步骤中标识的关系。
[0046]在本发明的上述方面中,所述搜索引擎可以为数据库构造3亂查询。为了所述搜索引擎和数据库能够互相交互,本发明的第四方面便利地提供了将数据源(例如,数据库)的数据结构映射到预确定的一组数据标签(例如,所述搜索引擎的数据标签)的方法。
[0047]便利地,可以以)011格式存储在比较步骤中标识的关系。优选地,所述数据源可以是数据库,所述关系可以与用于所述数据库的登录信息一起被存储。
[0048]本发明还延伸到生成搜索查询的方法和将结果组输出给用户的方法。
[0049]本发明还延伸到包含在记录介质/只读存储器/电载波信号上或存储在计算机存储器中的计算机程序,所述计算机程序包括用于使计算机执行本发明的方法的过程的程序指令。

【专利附图】

【附图说明】
[0050]为了使本发明能够得到更好地理解,现在将通过举例的方式参照以下附图:
[0051]图匕是根据本发明的实施方式的搜索引擎的桌面版本的原理图;
[0052]图化是根据本发明的实施方式的搜索引擎的基于服务器的版本的原理图;
[0053]图2是根据本发明的实施方式的搜索引擎的另一原理图;
[0054]图3是示出了如何在根据本发明的实施方式的桌面计算机上创建搜索查询以及处理搜索结果的流程图;
[0055]图4是示出了如何在根据本发明的实施方式的服务器计算机上创建搜索查询以及处理搜索结果的流程图;
[0056]图53示出了如何根据本发明的实施方式创建用于构造搜索查询的搜索词组合;
[0057]图56示出了图如的另一选择;
[0058]图6示出了从图5的组合构造的3亂搜索查询的实施例;
[0059]图7示出了搜索结果可如何转换成XII格式;
[0060]图8、%和10示出了如何通过根据本发明的实施方式的搜索引擎将重复的搜索结果从所接收到的结果中去除;
[0061]图%是示出了用于处理根据本发明的实施方式的搜索结果的另一技术(相对于图如的技术)的流程图;
[0062]图11示出了根据本发明的实施方式可用于构造查询的配置文件的实施例;
[0063]图12是示出了根据本发明的实施方式可如何将数据库的特征映射到搜索引擎的特征的屏幕截图。

【具体实施方式】
[0064]应注意,在全部附图和以下说明书中,相似的数字用于表示相似的特征。
[0065]图匕示出了桌面计算机。计算机1包括:数据存储3 (例如硬盘驱动器),其上存储有用户可能希望搜索的信息项;以及索引文件数据库5,包含与数据存储中感兴趣的项相关的诸如文件名、元数据和内容信息等数据。
[0066]计算机1还包括根据本发明的实施方式的搜索引擎7。该搜索引擎具有:输入装置9,用户可以通过该输入装置输入多个搜索词(例如通过在键盘上键入文本);处理装置10,用于将所接收到的搜索请求处理成搜索查询、或对所接收到的搜索结果(例如,从数据库5接收到的搜索结果)进行重复数据删除;以及输出装置11,可输出一组搜索结果以显示在例如计算机1的显示屏13上。当从用户接收到搜索请求后,搜索引擎7与索引数据库5通信,下文将参照图3对此更详细地进行描述。
[0067]图示出了本发明的一个版本,其中根据本发明的实施方式的搜索引擎位于服务器计算机15上。应注意,在图匕和化中,相似的数字用于表示相似的特征。
[0068]在图化中,服务器15通过电信网络17(例如因特网或局域网)连接至两个桌面计算机1、1’和两个其它的外部数据源(在此为数据库19、21〉。
[0069]桌面1、1’分别包括数据存储3、3’和文件索引数据库5、5’。
[0070]服务器15包括根据本发明的实施方式的搜索引擎、本地文件索引23和本地数据存储25。在使用中,服务器15可以通过输入/输出27从任何已连接的计算机源1、1 ’接收搜索请求。随后可以构造搜索查询,如下文将参照图3更详细地描述,并将构造的搜索查询发送至文件索引5、5’、23和数据库19、21。
[0071]虽然示出的本发明的桌面版本仅连接至文件索引数据库,但应注意,搜索引擎还能够以与图化中所示方式类似的方式对外部数据库进行访问。然而,为了下面的描述,假定桌面版本仅搜索文件索引,并且搜索引擎的服务器版本搜索本地和远程文件索引以及外部数据源。
[0072]图2示出了根据本发明的实施方式的搜索引擎的另一原理图。如图2所示,搜索引擎7与文档、数据库和其它应用程序进行通信。搜索引擎包括多个组件,诸如:促进搜索引擎和应用程序之间的相互联系的应用程序连接器29、安全文件索引31、以及控制用户交互的模块33和控制访问管理的模块35。如上面关于图匕和化所提到的,搜索引擎可以嵌入在桌面上或可以通过网页浏览器进行访问。
[0073]应注意,在图匕、113和图2中,处理装置10被示出为能生成搜索查询并能对所接收到的搜索结果进行重复数据删除的单个组件。但应理解,可以存在多于一个处理装置,例如一个用于生成搜索查询,一个用于对所接收到的结果进行重复数据删除。
[0074]还应注意,下文所述的用于生成搜索查询/搜索词组合或将结果进行重复数据删除为结果组的搜索引擎7应该被理解为表示搜索引擎7中执行这些功能的处理装置10(单个或多个处理组件)。
[0075]图3是示出了包括根据本发明的实施方式的诸如图1中所示的搜索引擎7的桌面计算机1上的搜索过程的大致流程图。
[0076]在步骤30中,搜索引擎通过输入装置9接收来自用户的搜索请求。这样的搜索请求通常会包括多个基于文本的搜索词(例如880£111-0^)6811 8^)806叫611(37)。
[0077]在接收到搜索词后,搜索引擎7创建这些搜索词的子集的多个组合。例如,在上面的搜索请求中存在六个单独的词。因此,在步骤32中,搜索引擎可以创建高达例如四个词汇的多个群。这种搜索词组合的创建增加了返回一组准确的结果的机会。下面参照图5更详细地描述搜索词组合的创建。
[0078]在步骤34中,将这些搜索词组合结合为单个搜索查询(例如以基本的3亂格式),该搜索查询随后可被发送至文件索引数据库5。图63中示出了一般的3亂查询的实施例。
[0079]步骤30至34(图3中的虚线35上方)是根据本发明第一个方面的搜索查询的生成。步骤36、38和40(图3中的虚线35下方)是根据本发明第二个方面将结果组输出至用户。
[0080]在步骤36中,搜索引擎7从文件索引5接收多个搜索结果。这些结果可以格式接收或通过该搜索引擎转换成XII格式,如下面关于图7所述。
[0081]在步骤38中,将X见结果的各个元(或节点)与所存储的节点相比较,以去除重复的搜索结果。下文将参照图8至10详细地描述这一过程。唯一的搜索结果在步骤38中被合并为结果组,并随后(在步骤40中)被输出至用户。
[0082]图4是示出了类似于图3的处理的流程图,除了图4中的搜索引擎7位于服务器15并能够访问保存在外部数据库19、21中的数据。与图3相同的处理步骤使用相同的参考标号表示。应注意,图4所提到的文件索引可以是服务器上的本地索引23,也可以是保存在远程放置的用户计算机上的文件索引5。
[0083]在接收到用户输入的搜索词后,和图3 —样,图4中的搜索引擎创建搜索词组合(步骤32),创建搜索查询(34),接收搜索结果(步骤36),对结果进行重复数据删除(步骤38),并且输出结果组(步骤40)。
[0084]然而,在步骤30中接收搜索词还导致,在步骤42中,搜索引擎7对存储有外部数据库19,21的详细信息的数据库配置文件进行解密,其中搜索引擎可以访问该外部数据库以便该搜索引擎能够创建该数据库的数据库查询(除了步骤34中对文件索引的3亂查询之外)。
[0085]在解密配置文件之后,在步骤44中创建数据库报告3亂并将其发送至数据库(图6中示出了实施例300。随后搜索引擎前进至步骤36,并且数据库结果与来自文件索引的结果合并并以相同方式处理。
[0086]相比于图3和4中所示的步骤32,图53更加详细地示出了创建各搜索词组合的过程。在图53中所示出的各处理框旁边是基于先前提到的搜索请求“88(3 ^8 ^1-0111^6£111-0^)6811 8^)806 叫61107 ” 的处理实施例。
[0087]如图3和4所示,在步骤30中,用户首先将其搜索词输入其计算机的显示器13的显示窗。随后在步骤46中,搜索引擎将搜索词置于已编号的数组,从而使各搜索词与其自身的数字标识符(在此例中为“1”至“6”)关联。
[0088]在步骤48中,搜索引擎检索六个搜索词的输入串的已存储的搜索短语排列,并且在步骤50中按照已存储排列对当前搜索词进行排列。
[0089]步骤50的输出是搜索词的九个不同组合(九个不同的搜索串),这九个组合可以被置于搜索查询中(图3和4中的步骤34)。
[0090]可选地,在步骤52中,搜索引擎7还可以执行同义词查找并基于该查找结果进一步创建搜索组合。在这种情况下,搜索组合1和3包括的词“880”可以被扩展为“8101-08(10881:1118 0011)01^1: 1011 ”,因此产生可以被置于搜索查询中的另两个搜索词组合(另两个搜索串)(按照图3和4中的步骤34)。
[0091]应注意,除了如上所述的创建搜索词组合的过程之外,根据本发明的实施方式的系统还可以处理复杂的搜索查询组合,例如:
[0092]880+^6^8+^1-0111^6 £111-0^)6811 8^)806 8^61107
[0093]在该实施方式中,搜索引擎不会排列词汇“880 ^8紅也46”的位置(并将其作为单个的搜索词来处理),但会排列词汇“211^01)65111”,“邓51。6”和“叫611。7”的位置。图56中示出了本发明的这种变体,以及在其中选择替换词的另一变体。
[0094]图6示出了 3亂查询的实施例,该查询可以从图53示出的^^一个搜索组合中构造。
[0095]应注意,根据本发明的实施方式,可以基于用户的喜好对输入搜索请求时所使用的搜索语言进行配置。例如,搜索语言的实施例可以为:
[0096]821201 12X1 = ’ 1^6x1 仂义虹吐’
[0097]= ’ ^ 0^6’
[0098]2冊 0^X2 = ’ ^ 0^6’
[0099]= ’他腕’
[0100]嫩腿=’八?11611肅6’
[0101]在该实施例中,可以改变搜索条件(以斜体示出)以适应特定组织的数据结构,例如灿1--可以被替换为⑶310腿觀口 18诎。
[0102]发送至文件索引/外部数据库的3亂查询的输出是3亂返回。图7是两个结果的这种返回的格式的实施例。该返回可以是XII可兼容的格式,但如果不是XII格式,其能够以下列两种方式中的一种转换为XII格式:
[0103]1)对于输出中的每个结果,可以将丨丨字段名)数据标准化为符合X见语法的元素名;或
[0104]2)可以查询存储在计算机上的映射文件,其中该计算机包含字段名和XIII元素之间的关系。随后可将每个字段中的数据输出映射至XII元素并且添加到输出。随后可将每个元素以结束语结束。
[0105]图8示出由根据本发明的实施方式的搜索引擎接收的三个乂祖^搜索结果。每个XII结果包括多个类或节点,其中的每个类或节点均包含(或可包含)搜索数据。应注意的是,图8中的XII结果是图7所示的通用格式的示例。
[0106]以XII结果1为示例,节点是(引用)”、“(^卹册广!!肅6 (公司-名称),,、“ 01*6(11 让 111111:(信用额度)1^81:111^0106 (最后进票)^ 0111:81:811(1111? (未清帐的)”、“600^8 (60 天),,和 “900^8 (90 天)”。
[0107]这些节点的每一个都与各种搜索数据相关,例如“01*6(11让111111:”节点包含值“100,000” 而 “01^8^111(11118” 节点包含值 “3000^ 00”。
[0108]由搜索引擎进行的搜索结果的重复数据删除处理将参照图如的流程图与图10的数组表进行描述。
[0109]在图如的步骤36中,接收X祖^叟索结果。应注意的是,该结果可转换成X祖^格式,如与图7有关的上文所述。
[0110]在步骤60中,前两个乂祖^结果被选中,在步骤62中,识别公共的类。在这种情况下,应注意节点和“ (^卹册广的邮”是这两个结果共有的,而搜索引擎取这两个节点并创建两个数组保存这些公共节点的值。
[0111]然后在步骤64中,搜索引擎7从结果1和结果2中包含的节点中随机选择多达三个的进一步的节点标识符,并对这些节点创建进一步的数组。还应注意的是,搜索引擎可持有配置文件(如下文关于图11和图12的描述),该文件详细说明存在于文件索引/外部数据库中的各种节点标识符,并且上述的进一步的节点标识符可从该配置文件中选出。在任何情况下,应注意的是,存在于结果1和结果2中的节点将存在于任何这样的配置文件中。
[0112]步骤60、62和64的结果是图10所示的数组表100。可以看出,在这个示例中搜索引擎已经从XIII结果2选择了节点““办6882 (地址2) ”,从XIII结果2选择了节点
081:00(16 (邮政编码)”,以及从XI[结果1选择了节点“01*6(11让111111:(信用额度)”。应注意,结果1和结果2中的这些节点包含的各个搜索数据已被添加到数组表100(步骤66)。
[0113]应注意的是,在重复数据删除处理中比较的节点数可取决于搜索引擎的设置或搜索的背景而改变。例如,如果正在搜索邮件,则系统可被设为仅搜索少数元数据(例如“寄信人”、“日期”、“主题”、“标识”字段或者,可仅搜索单独的元数据项(例如“标识”)。相比之下,如果正在搜索会计应用,则搜索更多的字段可能是适当的(例如“客户”、“供应商”、“债务总额”、“当前地址”、“最后订单”等)。
[0114]然后,搜索引擎开始相对于数组表检查每个搜索结果的过程,以确定结果是否为重复条目。
[0115]因此,在步骤68中搜索引擎取X见结果2,并在步骤70中相对于数组表100所包含的节点检查结果2的节点。当每个节点中持有的搜索数据与数组表中的值相匹配时,搜索引擎指定其为“真”。当每个节点中持有的搜索数据与数组表中的值不匹配时,搜索引擎指定其为“假”。
[0116]步骤70中的检查功能由图10中的数组表102表示,其中可看出乂见结果2的搜索数据与数组1和数组2匹配,但与数组3至数组5不匹配。
[0117]当搜索引擎确定XII结果包括与数组表中的每个节点所匹配的搜索数据时,该结果被认为是重复的并且在步骤72中将其丢弃。
[0118]当搜索引擎确定XII结果不包括与数组表中的每个节点所匹配的搜索数据时,在步骤74中将该结果添加至结果集。
[0119]在步骤72/74之后,搜索引擎移动至下一个搜索结果(在步骤76中),然后循环返回至步骤70以检查下一个搜索结果的节点中持有的搜索数据。
[0120]当搜索结果添加至结果集后,结果2内包含的搜索数据被添加至数组表。这在图10的数组表104中示出,其中添加的来自结果2的搜索数据以斜体字示出,而来自步骤62的搜索数据以粗体字示出。
[0121]在图9的处理对结果3重复之后,在步骤70中创建数组表106。可以看出,结果3不是重复结果,因为数组1、数组2和数组5被视为假。
[0122]由于结果3不是重复结果,因此将其搜索数据添加至数组表,如前参照结果2所述。在图10中可看到由此产生的数组表108,其中,除了来自早期的数组表104的搜索数据之外,表108包括16:^6:^611(36节点的值“123”和?30卹2111广11肅6节点的值“!'0七已1

^00688 1^(1,,。
[0123]图%是流程图,示出根据本发明的实施方式的用于处理搜索结果的可选择的技术(相对于图如在图%中,数组表内包含的节点是预先确定的,这意味着在图如中示出的步骤60至步骤66不是必需的。
[0124]回到图%,XII搜索结果在步骤36中被接收。
[0125]在步骤78中,XII结果1中包含的值被添加至数组表(在具有公共节点的范围内由于XII结果1是第一个结果,其不可能为重复结果,因此,在步骤80中将其发送给用户
[0126]在步骤82中,选择所接收的搜索结果中的下一个结果,并在步骤84中针对数组表内的值对其进行检查。应注意的是,该检查步骤与关于图10的上文所述相同。
[0127]如果数组表中的所有数组返回“真”指示,该结果被认为是重复的,并在步骤86中丢弃。然后,搜索引擎7返回步骤82并选择下一个结果。
[0128]如果任何数组返回“假”指示,则结果不是重复的。在步骤88中将目前结果的值添加至数组表中,在步骤90中将该结果发送至用户。然后,搜索引擎返回步骤82并选择下一个结果。
[0129]因此,图%示出一种实施方式,其中数组表被例如用户预定义,还示出一种实施方式,其中当结果被处理后返回给用户。
[0130]图11和图12分别示出可由根据本发明的实施方式的搜索引擎7用来构建上述的301查询的示例的配置文件、以及能够创建该配置文件的数据映射功能的屏幕截图。
[0131]图11的配置文件可在搜索引擎被安装时由管理员创建。正如从图中可以看出,该配置文件是包含各种信息的简单的XII文件,包含的各种信息即:
[0132]1)数据库登录信息(见用户名120与密码122的详细资料);
[0133]2)系统访问级别;
[0134]3)数据库之间的映射关系,即搜索引擎访问在重复数据删除处理中使用的X祖^元素的数据库,见参考数字124 ;
[0135]4)用于3叽查询的初始3亂126。
[0136]应注意的是,在任何一个配置文件中会有一个或多个这样的数据库连接。
[0137]映射关系一般由配置文件的区域124示出。应注意的是,在右侧示出了数据库字段128,在左侧示出了搜索引擎/配置字段130。
[0138]图12示出构建配置文件的机制,该机制示出了被连接到搜索引擎的数据库的数据结构、搜索引擎/配置字段名称、以及数据结构与字段名称之间的映射关系。
[0139]为了建立配置文件中的映射,用户在窗口区域140中显示待查询的数据库的数据结构。配置字段名称显示在窗口区域142中,用户依次选择每一个字段名称,然后扫描数据结构列表以识别相应的字段名称。以这种方式,数据库与搜索引擎结构的关系可被映射,并且每个联系可存储于窗口区域144中。
[0140]应注意的是,通过选择按钮146然后浏览计算机系统寻找待查询的数据库可添加进一步的数据库。用户特定的3叽命令可以通过窗口区域148添加。
[0141]可以理解的是,上述的实施方式仅通过示例方式给定并不是为了限制本发明,本发明的范围由所附的权利要求书限定,还将理解的是所描述的实施方式可以单独或联合使用。
【权利要求】
1.一种用于生成改进的搜索查询的搜索引擎,所述引擎包括: 用于接收搜索请求的输入装置,所述搜索请求包括N个搜索词; 处理装置,被设置为根据所接收的搜索请求制定出搜索查询; 输出装置,被设置为输出所述搜索查询, 其中,所述处理装置被设置为通过生成多个搜索串来制定出所述搜索查询,每个搜索串包括所述N个搜索词的子集的不同组合。
2.一种用于生成搜索查询和用于处理所接收的搜索结果的搜索引擎,包括: 根据权利要求1所述的用于生成改进的搜索查询的搜索引擎;和 用于将结果组输出给用户的重复数据删除引擎,所述重复数据删除引擎包括: 搜索结果输入装置,被设置为接收多个搜索结果,每个搜索结果包括一个或多个数据项; 重复数据删除装置,被设置为从在所述搜索结果输入装置处接收的多个搜索结果中去除重复搜索结果并生成结果组; 存储的数据组,其包括一个或多个数据类别和遍及所述一个或多个数据类别分布的一个或多个数据项; 结果组输出装置,被设置为输出所述结果组, 其中,所述重复数据删除装置被设置成将所述存储的数据组与所述搜索结果相比较并根据以下准则确定第一搜索结果是否是重复结果: a)如果所述存储的数据组中全部所述一个或多个数据类别的内容被确定为与所述第一搜索结果中的数据项匹配,那么将所述第一搜索结果确定为重复结果并将其丢弃;或者 b)如果所述存储的数据组中的至少一个数据类别中的内容被确定为与所述第一搜索结果中的任何数据项不匹配,那么将所述第一搜索结果添加到所述结果组。
3.一种用于将结果组输出给用户的搜索引擎,所述搜索引擎包括: 输入装置,被设置为接收多个搜索结果,每个搜索结果包括一个或多个数据项; 处理装置,被设置为从在所述输入装置处接收的所述多个搜索结果中去除重复搜索结果并生成结果组; 存储的数据组,其包括一个或多个数据类别和遍及所述一个或多个数据类别分布的一个或多个数据项; 输出装置,被设置为输出所述结果组, 其中,所述处理装置被设置成将所述存储的数据组与所述搜索结果相比较并根据以下准则确定第一搜索结果是否是重复结果: a)如果在所述存储的数据组中的全部所述一个或多个数据类别的内容被确定为与所述第一搜索结果中的数据项匹配,那么将所述第一搜索结果确定为重复结果并将其丢弃;或者 b)如果所述存储的数据组中的至少一个数据类别的内容被确定为与所述第一搜索结果中的任何数据项不匹配,那么将所述第一搜索结果添加到所述结果组。
4.根据权利要求3所述的搜索引擎,其中,如果将所述第一搜索结果添加给所述结果组,则所述处理装置被设置成将所述第一搜索结果中的所述一个或多个数据项添加至所述存储的数据组。
5.根据权利要求3或权利要求4所述的搜索引擎,其中,所述处理装置被设置成依次获取所述多个搜索结果中的每一个并将它们与所述存储的数据组相比较,以便根据权利要求3的准则(a)和(b)确定每个搜索结果是否是重复结果。
6.一种用于生成搜索查询和用于处理所接收的搜索结果的搜索引擎,包括: 根据权利要求1所述的用于生成改进的搜索查询的搜索引擎;和 根据权利要求3到5中任一项所述的用于将结果组输出给用户的搜索引擎。
7.一种将数据源的数据结构映射到预确定的一组数据标签的方法,所述方法包括: 显示一组预确定的数据标签; 显示所述数据源的所述数据结构,所述数据源的所述数据结构包括多个数据字段名;将所述一组数据标签与所述数据源的所述数据结构相比较,并识别与所述一组预确定的数据标签中的数据标签对应的数据字段名; 存储在比较步骤中识别的关系。
8.根据权利要求7所述的方法,其中,在比较步骤中标识的关系以XML格式存储。
9.根据权利要求7或8所述的方法,其中,所述数据源是数据库。
10.根据权利要求9所述的方法,其中,所述关系与用于所述数据库的登录信息一起被存储。
【文档编号】G06F17/30GK104361038SQ201410593426
【公开日】2015年2月18日 申请日期:2009年3月12日 优先权日:2008年3月13日
【发明者】西蒙·伊恩·贝恩 申请人:商业合伙人有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1