用于信息检索系统的搜索引擎的制作方法

文档序号:9769199阅读:244来源:国知局
用于信息检索系统的搜索引擎的制作方法
【专利说明】用于信息检索系统的搜索引擎
[0001]本申请要求享有2013年7月17日提交的标题为Informat1n Retrieval System、序列号为13/944,491的美国专利申请以及2014年4月14日提交的标题为Search Enginefor Informat1n Retrieval System、序列号为14/252,553的美国专利申请的优先权,所述两个美国专利申请都以引用的方式整体纳入本文。
【背景技术】
[0002]企业需要访问特定商业情报(BI)信息。商业情报(BI)是可以将原数据变换成对商业目的有意义且有用的信息的一套理论、方法论、处理、架构以及技术。BI可以操纵大量信息以帮助识别和开发新的机会。利用新的机会和实施有效的策略可以提供竞争市场优势和长期稳定性。
[0003]商业情报软件工具试图使将位于关系数据库中的原数据转化成商业决策人可以使用的有意义的信息的处理自动化。然而,新的报告的创建常常是复杂的且涉及若干个信息技术(IT)专家。商业用户首先可能需要填写一个描述在BI报告中提供什么数据的表单。
[0004]该表单被带给信息技术(IT)专家,信息技术(IT)专家生成正确的关系数据库管理系统(RDBMS)查询且然后从查询结果创建报告。商业用户指明检索什么数据且然后从IT专家取回最终报告的过程常常可能花费若干周时间。当需要处理大容量的数据时,现有数据库解决方案可能不足够快到提供交互式商业用户体验。
[0005]互联网搜索引擎被设计成搜索整个文档且帮助用户以公式表达问题。然而,互联网搜索引擎没有意识到存在于典型的关系数据库中的关系。互联网搜索查询仅执行简单的字符串匹配且不具有对结构化数据执行搜索以及关联/聚集/过滤搜索结果的智能。
【附图说明】
[0006]图1描绘一个示例信息检索系统。
[0007]图2描绘用于信息检索系统的一个示例处理流程。
[0008]图3描绘如何将数据列结合在数据库系统中的一个实施例。
[0009]图4描绘用于从特设用户输入生成结构化搜索指令的一个示例过程。
[0010]图5A-图5C描绘录入到搜索引擎内的示例输入。
[0011]图6A-图6C描绘通过搜索引擎执行的示例自动完成和解释。
[0012]图7A-图7B描绘通过搜索引擎生成的示例出错消息。
[0013]图8描绘用于对令牌(token)排名和显示的一个示例过程。
[0014]图9描绘具有不同令牌加权的示例索引。
[0015]图10描绘用于对令牌排名的另一个示例过程。
[0016]图11描绘一个示例状态机。
[0017]图12A-图12C描绘基于通过图11中的状态机识别的状态显示的示例电子页面。
[0018]图13描绘被搜索引擎使用的一个示例索引。
[0019]图14描绘用于对令牌排名的一个示例索引。
[0020]图15描绘一个示例优先级队列。
[0021]图16描绘示例令牌安全位掩码。
[0022]图17描绘具有安全位掩码的一个示例索引。
[0023]图18描绘被信息检索系统使用的一个示例索引结构。
[0024]图19描绘一个示例分布式索引结构。
[0025]图20描绘信息检索系统中的一个示例表格映射。
[OO26 ]图21描绘一个不例用户可选择的表格映射。
[0027]图22描绘用于第一搜索项的一个用户可选择的表格映射。
[0028]图23描绘用于第二搜索项的一个替代用户可选择的表格映射。
[0029]图24描绘用于第三搜索项的另一个替代用户可选择的表格映射。
[0030]图25描绘用于一个用户可选择的表格映射的一个示例排名方案。
[0031 ]图26描绘用于将不同表格动态地链接在一起的一个方案。
[0032]图27和图28描绘用于生成一个工作表表格的一个方案。
[0033]图29描绘用于处理公式化搜索查询的一个示例方案。
[0034]图30描绘用于实施信息检索系统的一个示例计算设备。
【具体实施方式】
[0035]_
[0036]引擎将非结构化特设搜索查询转换成从结构化关系数据库检索数据的搜索指令。搜索引擎允许多数用户通过仅仅键入几个字来表达搜索要求。
[0037]基于位于关系数据库中以及任何其他结构化数据源或非结构化数据源中的内容、属性、度量以及其他元数据生成令牌。搜索引擎响应于用户输入来识别和显示令牌。令牌可以包括任何字、短语、字符组、值、符号等或其任何组合。
[0038]搜索引擎使用令牌以通过搜索项的选择来引导用户,所述搜索项之后用于生成结构化查询指令。结构化查询指令然后用于检索数据库系统中的数据。
[0039]搜索引擎可以确定和/或预测什么令牌和/或数据与用户输入相关联。例如,搜索引擎可以在用户完成录入搜索项或完成搜索查询之前提供建议和显示数据。所述建议帮助将用户引导到数据库系统中当前存在的相关数据。
[0040]检索系统可以使用基于排名的方案以预测用户输入和取出对应的结果。例如,搜索引擎可以基于仅几个搜索字符来预测用户正在寻找销售数据。搜索引擎然后可以建议用于访问不同类型的销售数据的搜索项且可以启动初步搜索以检索和显示不同销售区域的销售数据。
[0041]初步搜索可以显示用户最初正在搜索的精确信息。在其他情况下,初步搜索可以显示用户不知道存在的、用户通常不会请求的、或帮助用户定位正确信息的其他有帮助的?目息O
[0042]搜索引擎可以解决搜索输入和可用数据之间的歧义。例如,用户可以录入输入REVENUE BY YEAR。交易表格可以包括基于订单日期和发货日期的收入数据。搜索引擎可以询问用户是否应基于订单日期或发货日期计算收入?搜索引擎还可以提供如何对特定数据执行操作以生成结果的解释。搜索引擎还可以使用安全方案来约束不同用户可以查看什么数据。
[0043]搜索引擎还可以允许用户选择搜索项和不同表格中的列之间的映射。搜索引擎可以生成含有所选择的映射的工作表表格。搜索引擎还可以对不同用户所选择的表格映射中的数据执行用户可定义的公式化操作。
[0044]图1描绘一个示例信息检索系统100(检索系统)。信息检索系统100可以包括一批本地的和/或基于云的计算设备和存储设备,诸如,服务器、数据库系统和/或任何其他计算逻辑。检索系统100内的不同的计算设备和数据库系统可以经由一个或多个总线或网络耦合在一起。所述总线和网络可以包括局域网络(LAN)、广域网络(WAN)、光纤信道网络、因特网络等或其任何组合。用户可以使用计算设备114访问检索系统100。计算设备114可以包括个人计算机、计算机终端、移动设备、智能手机、电子笔记本等或其任何组合。
[0045]关系数据库系统106可以包括一个或多个结构化关系数据库和/或非结构化数据库,诸如,存储一个企业的商业情报(BI)信息的任何数据库系统。BI信息可以包括销售数据、收入数据、利润数据、税收数据等或其任何组合。在一个实施例中,数据库系统106可以包括动态随机存取存储器(DRAM)、闪速存储器、盘式存储器或具有相对快速数据存取的任何其他类型的数据存储介质。在一个实施例中,数据库系统106中的一些数据以列结构/行结构存储,且被指派以识别特定数据参数和关系的附加的元数据。例如,检索系统100可以识别数据的不同特性,诸如,属性、度量、值、唯一识别符、标签、链接、列键和行键等。
[0046]检索系统100可以基于数据特性生成令牌且使所述令牌与数据库系统106中的不同的列相关联。例如,数据库系统106中的一个列可以含有收入数据。检索系统100可以生成包括字REVENUE的令牌且将该令牌加载到一个将用户输入与字revenue中的字母比较的索引内。
[0047]搜索引擎104可以使用索引和状态机来引导用户使用与数据库系统106内含有的数据和数据结构相关联的搜索项。状态机可以识别与搜索输入相关联的数据的不同的状态和类型。例如,一些搜索项可以被识别为属性或度量。
[0048]属性可以包括任何数据特性、类别、内容等,其在一个实施例中可以是不可量化的或非数字的。在另一个实施例中,属性是从数字值的固定全集(universe)汲取的,诸如,年龄、邮政编码、布尔操作符、州编码等或其任何组合。
[0049]度量可以包括可量化的数字值,诸如,尺寸、数量、度数等。含有州名称的第一列可以被认为属性列,且含有接收的不同州的订单数目的第二列可以被认为度量列。搜索引擎104然后可以响应于请求一个州(属性列)的收入数据(度量列)的用户输入启动搜索查询。
[0050]搜索引擎104显示与用户输入的当前州相关联的不同令牌和/或数据。此外,令牌可以与数据库系统106中的结构化表格或列相关联。令牌帮助引导用户使用涉及数据库系统106内的特定结构化数据的搜索项。例如,检索系统100可以将用户绑定成使用与数据库系统106内当前存在的数据相关联的令牌。这防止该用户生成对于数据库系统106内不存在的数据的搜索查询,且防止用户使用不能够与数据库系统106内的数据链接的无效搜索项。
[0051]用户还可以录入在数据库系统106中不具有对应的数据的有效搜索项。检索系统100可以生成一个指示不存在针对该搜索查询的数据的响应。例如,搜索项可以请求七月份在California接收的订单数目。该数据库系统可以含有订单的列和California的列。然而,所述列可能不具有七月份来自California的订单。该检索系统可以生成一个指示七月份未从California接收订单的响应。
[0052]在一个实施例中,用户经由web浏览器或web应用访问用户界面102。在另一个实施例中,用户可以访问联络信息检索系统100和搜索引擎104的本地本机应用。用户将字符录入到用户界面102内的搜索字段内。搜索引擎104将所述字符与先前从数据库系统106生成的令牌进行比较。搜索引擎104可以在用户完成搜索查询之前向该用户显示建议的令牌。例如,搜索引擎104可以在用户录入字母R之后立即显示收入令牌。如果相关,用户可以选择显示的收入令牌。否则,用户可以将附加的字符录入到搜索字段内且搜索引擎104可以将所述附加的字符与令牌进行比较。
[0053]搜索引擎104可以在向用户显示令牌之前使用排名算法。换句话说,搜索引擎104可以尝试预测数据库系统106内的什么数据与用户输入相关联。例如,可能存在与字母R相关联的数百个不同令牌。搜索引擎104可以对所述令牌排名且基于该排名启动一个搜索查询。
[0054]令牌排名可以基于使用率、表格基数或任何其他标准。例如,第一令牌可以与数据库系统中具有四个值的第一列相关联,且第二令牌可以与数据库系统中具有数百个值的第二列相关联。搜索引擎104可以使第一令牌的排名高于第二令牌,这是因为第一列中的较少数目的值可以具有较高的含有正确数据的可能性。搜索引擎104也可以基于在先搜索查询中访问相关联的列的频繁程度来对令牌排名。
[0055]搜索引擎104通过将一个搜索对象发送到商业情报服务器108(BI服务器)来启动搜索查询。搜索查询和结构化搜索查询在下文可交换地使用,且指的是用于访问数据库106内的任何类型的数据的文本、符号、操作符、命令、指令、编码等或其任何组合的任何组合。
[0056]可以在将搜索项录入到搜索字段内之前、期间和/或之后启动搜索查询。例如,搜索引擎104可以在用户将几个字符录入到用户界面102内之后将搜索对象发送到BI服务器108。搜索引擎104可以在录入用于用户搜索查询的附加的字符之后启动其他搜索查询且将相关联的搜索对象发送到BI服务器108。
[0057]BI服务器108基于从搜索引擎104接收的搜索对象来生成指令。在一个实施例中,指令包括SQL类查询。然而,也可以使用其他查询格式。数据库系统106响应于搜索指令将数据发送回到BI服务器108。搜索对象和相关联的结构化搜索指令也可以指引数据库系统106执行不同操作。例如,结构化搜索指令可以请求数据库系统106以结合不同的列且将所述列中的不同数据加在一起。
[0058]BI服务器108响应于结构化搜索指令从数据库系统106接收回数据且在用户界面102内显示该数据。如上文所提及的,可以在用户完成录入搜索项之前显示该数据。例如,在用户录入字母R之后,搜索引擎104可以识别收入令牌且将相关联的搜索对象发送到BI服务器108 Al服务器108可以基于从数据库系统106检索与该收入令牌相关联的内容的搜索对象而生成结构化搜索指令。BI服务器108接收来自数据库系统106的相关联的收入数据且在用户界面102内显示该收入数据。
[0059]集群管理器110管理检索系统100内的处理的配置和分布。例如,集群管理器110可以将用户界面102、搜索引擎104、BI服务器108以及相关联的备份过程指派到检索系统100内的不同的计算设备。
[0060]图2进一步详细描绘通过信息检索系统100执行的操作的一个实施例。用户将部分搜索项126录入到用户界面102的搜索字段120内。通过搜索引擎104分析所述部分搜索项126。例如,索引128、状态机130以及排名算法132可以分析录入到搜索字段120内的每个字符。如上文所解释的,基于数据库系统106内识别的数据,当用户正在录入搜索项126时,搜索引擎104可以向用户预料、预测、建议和/或指引可用数据。
[0061]搜索引擎104可以生成搜索项126的不同逻辑状态的搜索对象134。例如,搜索引擎104可以在检测度量搜索项REVENUE之后生成第一搜索对象134。搜索引擎104可以在用户完成录入整个搜索项REVENUE BY STATE之后生成第二搜索对象134。在此实施例中,搜索对象134包括识别与数据库系统106中的度量列146相关联的匹配收入令牌的伪编码、指令、文本或某些其他类型的消息136A。指令136A还包括一个指示收入数据应被加在一起的操作符。
[0062]在此实施例中,搜索对象134还包括一个识别与数据库系统106中的州属性列142相关联的匹配州令牌的指令136B。指令136B还包括一个指示应根据州列142内的属性将列146内的收入数据分组的操作符。
[0063]搜索对象134可以包括生成结构化搜索查询指令所需要的任何其他信息。例如,搜索引擎104可以包括用于基于识别的搜索项过滤数据的指令138。例如,搜索项126可能已包括值REVENUE BY STATE = CALIFORNIA。搜索引擎104可以生成搜索对象134内的过滤指令138诸如:
[0064]FILTER 1: STATE = CALIFORNIA。
[0065]搜索对象134还可以包括用于显示所检索的数据的指令。例如,时间值可以指引BI服务器将所检索的数据标绘在时间图表上。
[0066]BI服务器108作为元数据服务器操作和作为查询传递服务器操作。元数据服务器生成识别数据库系统106内的不同的表格、列以及数据的位置和关系的关系模型。BI服务器108可以由从企业数据库中的表格、列、数据以及链接信息提取的元数据生成关系模型。在另一个实施例中,系统管理员可以生成所述关系模型中的一些。
[0067]BI服务器108的查询传递服务器部分将搜索对象134转换成结构化搜索指令140,且将指令140发送到数据库系统106,且将从数据库系统106检索到的数据传递到用户界面102。结构化搜索指令140基于在关系模型中所识别的表格、列和/或数据位置和关系。例如,BI服务器108中的关系模型可以指示收入列146位于数据库系统106内的表格Tl中且州列142位于数据库系统106的表格T2内。BI服务器108生成引用含有列146的表格Tl和含有列142的表格T2的结构化搜索指令140。
[0068]搜索引擎104可以包括用于确定何时可以处理查询的关系模型。例如,搜索引擎104可以识别与数据库系统106内的列相关联的有效令牌。不与有效令牌对应的搜索项可以被识别为无效搜索请求。
[0069]在另一个实施例中,用户可以录入项REVENUE COUNTRY作为查询。搜索引擎可以确定该查询是无效的,这是因为收入来自表格Tl且国家来自表格T2,且不存在将表格Tl和表格T2连接的关系。因此,搜索引擎使用数据元素之间的关系的认知来提高用户搜索查询的效率和效力。在下文所描述的另一个方案中,用户可能能够将表格Tl和表格T2动态地映射或链接在一起且生成相关列的搜索结果。
[0070]搜索引擎104还可以使用用于解决搜索歧义的关系模型。包括有效令牌的用户查询可以潜在地映射到数据库系统106中的多个表格或多个列。在这些实施例中,搜索引擎104可以询问用户更多信息以消除用户搜索项的歧义或可以建议替代的搜索项。
[0071]例如,用户可以录入搜索项PRODUCTS FOR CALIFORNIA。搜索引擎104可以确定存在针对在California销售的产品的第一表格或列和存在针对在California生产的产品的第二表格或列。搜索引擎104可以询问用户以在销售的产品和生产的产品之间选择。
[0072]结构化搜索指令140还可以包括指示数据库系统106应如何处理所识别的数据的操作符。例如,指令140可以包括一个指令数据库106对表格Tl的收入列146中的数据求和的求和操作符。指令140还可以包括指令数据库106根据表格T2的州列142中含有的州名称将表格Tl的收入列146中的收入数据分组的GROUP BY OPERATOR。在一个实施例中,搜索指令140可以包括SQL指令或类似于SQL指令。
[0073]BI服务器108在用户界面102内显
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1