CN102918529B - 索引生成和使用的方法和装置 - Google Patents
索引生成和使用的方法和装置 Download PDFInfo
- Publication number
- CN102918529B CN102918529B CN201180021360.4A CN201180021360A CN102918529B CN 102918529 B CN102918529 B CN 102918529B CN 201180021360 A CN201180021360 A CN 201180021360A CN 102918529 B CN102918529 B CN 102918529B
- Authority
- CN
- China
- Prior art keywords
- row
- database
- index
- object diagram
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供一种生成包括相关对象图的可检索索引(111)的方法。将数据库(107)的多个数据对象转换成可检索列的集合中的对应行。确定与可检索列的每行对应的对象图。生成包括可检索列的集合和对应的对象图的索引(111)。
Description
背景技术
服务提供商和设备制造商(例如,无线、蜂窝等)不断受到例如通过提供有竞争力的网络服务来向消费者传递价值和便利性的挑战。行业中的重要区分(differentiator)在于应用和网络服务,以及支持和换算(scale)这些服务的能力。特别地,这些应用和服务可包括访问和管理例如由在线存储服务利用的数据。在过去,这些服务利用了不同类型的持久性存储器以便于浏览、搜索、和改变信息。这样的持久性存储器的功能可包括建立、读取、更新、和删除(CRUD)。通过这样的功能,这些持久性存储器中的许多包括基本提取特征,但是缺少快速搜索和访问。使用这样的持久性存储器的服务提供商因此面临着优化搜索和访问持久性存储器的重要挑战。
发明内容
因此,需要一种生成具有附带的对象图的可检索索引的方法。可基于使用对象关系映射的数据库来开发可检索索引。
根据一个实施例,一种方法包括:将数据库的多个数据对象转换成可检索列的集合中的对应行。该方法还包括:确定与可检索列的每行对应的对象图。该方法进一步包括:生成包括可检索列的集合和对应的对象图的索引。
根据另一个实施例,一种装置包括:至少一个处理器;和包括计算机程序代码的至少一个存储器,所述至少一个存储器和计算机程序代码配置为通过至少一个处理器至少部分地使得装置:将数据库的多个数据对象转换成可检索列的集合中的对应行。还使得所述装置:确定与可检索列的每行对应的对象图。进一步使得所述装置:生成包括可检索列的集合和对应的对象图的索引。
根据另一个实施例,一种计算机可读存储介质,承载一个或多个指令的一个或多个序列,当由一个或多个处理器执行时,一个或多个指令的一个或多个序列至少部分地使得装置:将数据库的多个数据对象转换成可检索列的集合中的对应行。还使得所述装置:确定与可检索列的每行对应的对象图。进一步使得所述装置:生成包括可检索列的集合和对应的对象图的索引。
根据另一个实施例,一种装置包括:用于将数据库的多个数据对象转换成可检索列的集合中的对应行的部件。该装置还包括:用于确定与可检索列的每行对应的对象图的部件。该装置进一步包括:用于生成包括可检索列的集合和对应的对象图的索引的部件。
通过示出多个特定实施例和实现方式,包括设想用于执行本发明的最佳方式,从以下详细描述中,本发明的其他方面、特征、和优点容易变得清楚。本发明还能够具有其他和不同实施例,并且其若干细节可在各个明显方面进行修改,所有都不脱离本发明的精神和范围。因此,附图和说明书被认为实际上是说明性的,并非限制性的。
附图说明
本发明的实施例通过实例示出,而并非限制,在附图中:
图1是根据一个实施例的能够生成具有附带的对象图的可检索索引的***的视图;
图2是根据一个实施例的索引构建器的组件的视图;
图3是根据一个实施例的示例性域对象模型的视图;
图4是根据一个实施例的生成具有相关对象图的可检索索引的过程的流程图;
图5A是根据一个实施例的基于可检索索引和相关对象图应答查询的过程的流程图;
图5B是根据一个实施例的利用索引向用户设备提供服务的流程图;
图6是可用于实现本发明的实施例的硬件的视图;
图7是可用于实现本发明的实施例的芯片集的视图;和
图8是可用于实现本发明的实施例的移动终端(例如手机)的视图。
具体实施方式
公开了生成具有附带的对象图的可检索索引的方法、装置和计算机程序的示例。在以下描述中,为了说明的目的,阐述了多个特定细节,以提供本发明的实施例的全面理解。然而,对于本领域技术人员显而易见的是,本发明的实施例可以在没有这些特定细节或具有等同配置的情况下实践。在其他实例中,以框图形式示出已知结构和设备,以避免不必要地模糊本发明的实施例。
图1是根据一个实施例的能够生成具有附带的对象图的可检索索引的***的视图。通过增加对网络服务的需求,正确地管理数据搜索和传送的需求成为首要关注的问题。任何网络服务的主要部分是存储和从数据库获取数据。某些实施例中,数据库是组成行和/或列的表的数据的集合。某些实施例中,在提供数据之间的关系时,可以可交替地使用行和列。表可提供访问、管理、和更新与表相关的数据的方式。
一种类型的数据库为平面数据库。平面数据库包括数据的表。这样,数据库可填充与一个或多个列的字段对应的数据记录(例如行)。平面数据库的一个实例是接收订单(takingorder)的数据库。这个数据库中,对于接收的每个新订单建立记录。每个记录可具有与信息的列对应的字段。因为存在单个表,诸如名称和地址的客户信息的字段存储该记录,以及诸如产品名称、命令的量、产品的价格、总价等的产品信息。此外,如果同一客户下了另一订单,则通过客户信息(可与先前的记录相同)以及个性化的产品信息来建立另一记录。使用这个方法,每次接收订单时,复制客户信息。由于对每个记录接收到复制数据,可能出现不一致(例如,客户在一次登录中使用名和姓,在另一登录中使用昵称和姓)。这样,当用户(例如表示发出订单的公司、客户等)查询数据库时,用户期望获得的一些记录无法在结果中返回。此外,如果用户改变客户信息的一个或多个字段(例如,账单地址),则需要找到并更新与客户相关的每个记录。如先前所述,记录中的不一致可导致本应该被更新的这些记录中的一些未被更新。在说明书中,使用各个表和数据库的实例。这些实例是示例性的,不意味着以任何方式限制本专利。
另一类型的数据库是关系数据库。关系数据库通过使用数据集的共同特征来匹配数据。因此,关系数据库可包括通过一个或多个字段彼此相关的多个数据表。例如,关系数据库可使用两个表(订单表和客户信息表)来存储与平面数据库相同的信息。每个客户可在客户信息表中具有一组信息(例如,姓名、地址、信用***等)。此外,每个客户信息记录可包括用作关系密钥(relationalkey)的唯一客户代码。当***接收来自客户的订单时,订单表中的记录包括关系密钥。通过这个方法,当需要做出更新时,***仅需要对客户信息表做出一次更新,其可影响所有订单。某些实施例中,可针对客户信息使用多于一组的信息(例如,一组用于家庭地址,另一组用于度假屋,又一组用于用户的父母家等)。这些组的每个组还可经由关系密钥关联。以上包括关系数据库的简单版本,然而,实践中,可为关系数据库提供多个关系和表。一个实例中,房地产交易数据库包括城镇的房地产交易数据。房地产交易可按照交易的年份、交易的成交价格、买家的姓、通讯地址、地区等来分组。这样,可在这些组的信息的每个组之间建立关系。随着关系变得越来越复杂,使用文本搜索来检索这些数据库变得越来越复杂。这是因为可能需要生成单独的检索来检索每个表。单独检索可能是耗时的、需要数据库的用户(例如经由客户端)等待。
尽管参照关系数据库描述了各个实施例,但是可设想这里所述的方法可用于其他持久性存储器。例如,可利用资源描述框架(RDF)存储引擎或其他类型的持久性存储库(store)(例如面向对象的数据库)。一个实例中,RDF引擎可将RDF数据存储在三元存储库或四元存储库的本地表示中。这些存储库可基于RDF格式来优化,以形成构成语句的主谓宾关系(例如三元组)。例如,可将术语“SmithknowsRobert”解析成主语“Smith”、谓语“knows”和宾语“Robert”,然后表示为三元组。在四元存储库的情况下,该语句可包括四个项,代替三元组中的三个项。
为了解决上述问题,图1的***100引入生成具有附带的对象图的关系数据库的可检索索引的能力。可检索索引可适合为了搜索关系数据库中存储的特定信息而优化的特定使用例。此外,对象图可在关系数据库中保存结构化信息。这样,用户设备(UE)101a-101n的用户可经由通信网络105向服务平台103查询关系数据库107中存储的信息,以接收对于查询而返回的检索结果。服务平台103的服务接口109检索由索引构建器113生成的索引111。
索引构建器113从关系数据库107和/或负责管理关系数据库107的对应的数据服务115生成索引111。索引构建器113经由数据服务115从关系数据库107接收数据对象(例如,一个或多个表)。某些实施例中,数据对象是关系数据库107中存储的表或表的实例。此外,数据对象可包括部分表和/或表的实例。然后,索引构建器113将数据库的数据对象转换成在索引的一组可检索列中的对应行。索引111的每行可包括与关系数据库107的表之一的记录相关的可检索数据(例如,与一个或多个字段对应的文本)。此外,索引行可包括经由一个或多个关系与来自与记录相关的多个表的记录相关的可检索数据。例如,关系数据库107包括关于产品变形、产品、发布商、设备类型、国家、语言、和数字资产中的每个的表。这些表的每个经由一个或多个关系密钥彼此关联。因此,如果基于产品变形做出索引111,则可使用产品变形的标识符从其他表获取相关数据以增加至索引行内容。某些实施例中,一个可检索索引字段对应于关系数据库107的表。其他实施例中,一个可检索索引字段对应于每个表的字段。可基于环境使用格式化索引111的不同变形和组合。某些实施例中,将可检索列格式化为基本的并包括文本。这样,可使用索引111来提供信息给使用不同应用117的一个或多个UE101。这些应用117可用不同的编程语言(例如Java、JavaScript、Perl、超文本预处理程序(PHP)等)进一步编码。因此,索引111可以是语言独立的。
此外,索引构建器113确定与索引111的行相关的对象图。对象图可基于用于生成索引111的所选表(例如,上述实例中的产品变形表)。可通过确定与行对应的数据对象和关系数据库107中的一个或多个其他数据对象之间的一个或多个关系来确定对象图。可通过搜索与数据对象相关的一个或多个关系密钥的其他表的一个或多个来做出这个确定。因此与每个数据图对应的对象图包括对于其他对应数据对象的关系的表示。某些实施例中,可用诸如可扩展标记语言(XML)的标记语言或诸如JavaScript对象符号(JSON)的另一语言来编码。此外,可序列化(serialize)和/或压缩对象图。***100的一个特征是允许快速访问关系数据库107,同时保持结构和节省存储器空间。由此,***100可包括用于生成可检索列和/或对象图的部件。
因此,索引构建器113生成索引111。索引111可包括,对于每行的一个或多个可检索列和对应的对象图。这样,可关于索引111执行文本检索以获取行。该行包括可检索数据以及对象图。然后,使得可检索数据和/或对象图作为查询的响应发送至UE101。某些情况下,查询的响应可包括匹配或至少部分匹配检索查询的一个或多个行。
通过实例,请求查询的应用117(例如web浏览器、数据库管理器等)接收结果。然后,经由用户界面119向用户呈现结果。此外,应用117可解压缩对象图和/或去序列化(deserialize)对象图。某些实施例中,对象图被完全填充,并包括被检索的信息。其他实施例中,对象图包括用于向行的一个或多个列提供结构的结构化信息。此外,用户可操作对象图中的一个或多个字段(例如,与客户表相关的地址字段)。因为保持了结构,可将更新发送至服务平台103,以基于改变更新关系数据库107。
当数据服务115接收更新关系数据库107的请求时和/或周期地,数据服务115可向索引构建器113发送开始相关索引111的更新的请求。这样,索引构建器113可基于该请求或周期地更新索引111。索引构建器113可基于请求的中断确定在关系数据库107中发生了改变。然后,索引构建器113基于改变更新索引111。某些实施例中,替换整个行,其他实施例中,基于关系数据库107的改变替换一个或多个字段和/或对象图。例如,如果与对应于特定表(其还相对于一个或多个列)的数据对象相关的信息存在改变,则仅需要更新那些列和/或对象图。
某些实施例中,索引是使用ApacheLucene实现的Lucene索引。Lucene是检索软件库。Lucene广泛地用于其全文检索和索引性能。在Lucene索引中,从原始数据对象(例如文档)提取文本信息。这允许使用索引的全文检索。Lucene索引是实现关系数据库107的索引和检索的一种可能的技术。此外,可利用全文检索和/或索引的其他方法。
一个实例中,使用XML来描述对象图。XML是电子编码文档的一组编码规则。除了XML,可设想可利用使用其他语言或方案(例如JSON)的编码来生成对象图。通过实例,可利用一个或多个XML语言特征(例如标签、元素、标记、内容等)来描述对象图和/或索引111。此外,可利用XML来描述由索引构建器113构建的一个或多个索引111。由此,当服务接口109根据来自UE101的查询检索索引111时,服务接口109可利用解析XML文档的效率作为索引111和索引定义。
通过实例,***100的通信网络105包括一个或多个网络,例如数据网络(未示出)、无线网络(未示出)、电话网络(未示出)、或其任意组合。可设想,数据网络可以是任意局域网(LAN)、城域网(MAN)、广域网(WAN)、公共数据网(例如,因特网)、短距离无线网络、或任意其他适合的分组交换网络,诸如商业所有、专用分组交换网,例如专属电缆或光纤网络等,或者其任意组合。此外,无线网络可以是例如蜂窝网络,并且可采用各种技术,包括用于全球演进的增强数据速率(EDGE)、通用分组无线业务(GPRS)、全球移动通信***(GSM)、因特网协议多介质子***(IMS)、通用移动电信***(UMTS)等、以及任意其他适合的无线介质,例如全球微波接入互联(WiMAX)、长期演进(LTE)网络、码分多址(CDMA)、宽带码分多址(WCDMA)、无线保真(WiFi)、无线LAN(WLAN)、蓝牙因特网协议(IP)数据广播、卫星、移动自组织网络(MANET)等、或其任意组合。
UE101是移动终端、固定终端、或便携式终端(包括移动手机、站、单元、设备、多介质计算机、多介质输入板、因特网节点、通信器、桌面型计算机、膝上型计算机、个人数字助理(PDA)、音频/视频播放器、数码相机/摄像录像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备、或其任意组合)中的任意类型。还设想,UE101可支持对于用户的任意类型的接口(例如“可佩戴”电路等)。
用户接口119可包括各种通信方法。例如,用户接口119可具有输出端,包括视觉组件(例如屏幕)、音频组件、物理组件(例如振动)、和其他通信方法。用户输入可包括触摸屏接口、滚动点击接口、按钮接口、麦克风等。
通过实例,UE101、服务平台103使用已知的、新的或仍在开发中的协议彼此通信以及与通信网络105的其他组件通信。在这个上下文中,协议包括一组规则,其定义通信网络105中的网络节点如何基于在通信链路上发送的信息彼此交互。协议在每个节点中的不同操作层是有效的,从生成和接收各种类型的物理信号、到选择用于传输这些信号的链路、到由这些信号指示的信息的格式、到识别在计算机***上执行的哪些软件应用发送或接收信息。在开放***互连(OSI)参考模型中描述了用于在网络上交换信息的协议的概念上不同的层。
网络节点之间的通信典型地受到交换数据的离散分组的影响。每个分组典型地包括(1)报头信息,其与特定协议相关;和(2)有效载荷信息,其在报头信息之后并且包含可独立于该特定协议处理的信息。在一些协议中,分组包括(3)报尾信息,其在有效载荷之后并且指示有效载荷信息的结尾。报头包括诸如分组的源、其目的地、有效载荷的长度、和协议使用的其他属性的信息。通常,用于特定协议的有效载荷中的数据包括与OSI参考模型的不同的、更高层相关的不同协议的报头和有效载荷。特定协议的报头典型地指示在其有效载荷中包含的下一协议的类型。更高层协议被认为封装在底层协议中。贯穿多个异构网络(例如因特网)的分组中包括的报头典型地包括物理(层1)报头、数据链路(层2)报头、网络间(层3)报头和传输(层4)报头、和各个应用报头(层5、层6和层7),如OSI参考模型所定义。
一个实施例中,服务平台103可根据客户端-服务器模型与UE101上的应用117交互。根据客户端-服务器模型,客户端处理向服务器处理发送包括请求的消息(例如对信息的查询),服务器处理通过提供服务来响应(例如提供所请求的信息)。服务器处理还向客户端处理返回具有响应的消息。通常,客户端处理和服务器处理在不同的计算机设备(称为主机)上执行,并使用用于网络通信的一个或多个协议经由网络通信。术语“服务器”传统上用于表示提供服务的处理、或在上面执行处理的主机计算机。类似地,术语“客户端”传统上用于表示发出请求的处理、或在上面执行处理的主机计算机。这里,术语“客户端”和“服务器”指代处理,而并非主机计算机,除非从上下文清楚获知。此外,服务器执行的处理可分开,作为多个主机上的多个处理(有时候称为层)来运行,这是因为考虑到可靠性、可扩展性、和冗余性等。
图2是根据一个实施例的索引构建器的组件的视图。通过实例,索引构建器113包括用于提供基于关系数据库107生成和更新可检索索引111的一个或多个组件。可设想,这些组件的功能可组合于一个或多个组件中或通过等同功能的其他组件来执行。这个实施例中,索引构建器113包括至少一个通信接口201、至少一个存储器203、和执行模块205。
可使用通信接口201,经由服务接口、和通信网络105上可用的或与服务平台103相关的其他设备,与数据服务115、服务接口109、UE101通信。某些实施例中,服务平台103代表服务器的云或集合。执行模块205可经由通信接口201通过例如因特网协议、光纤传输、或任意其他可用通信方法的方法从数据服务115接收信息(例如数据库表)。此外,可使用通信接口201填充索引111(例如,经由服务接口109和/或直接地)。可利用通信接口201和/或通信网络105中的组件将一种形式的通信转换成另一种形式的数据传输。
执行模块205还可从数据服务115接收数据对象。数据对象可通过请求和/或作为周期处理的一部分来接收。此外,执行模块205可基于一个或多个数据对象生成索引111。在生成索引时,索引信息可存储于存储器203中。此外,当生成索引时,索引可存储于与服务接口109相关的存储器中。附加地或备选地,执行模块205可从数据服务115接收数据对象,以更新一个或多个索引。
此外,服务接口109可从UE101(例如客户端)接收查询请求。服务接口109可确定查询是否包括文本检索。如果查询包括文本检索,则服务接口109可使用索引111的一个或多个的一个或多个字段来检索文本。某些实施例中,查询被转发以在不需文本检索的情况下检索索引111。其他实施例中,将查询转发至数据服务115,以解析(resolve)对于一个或多个类型的请求的查询请求(例如,基于特定表中的特定标识符对关系信息的特定请求)。
图3是根据一个实施例的示例性域对象模型的视图。该域对象模型示出产品变形301和其他对象(例如数字资产303、设备类型305、国家307、语言309、产品311、和发布商313)之间的关系。如图所示,产品变形301直接涉及数字资产303、设备类型305、国家307、语言309、和产品311。这样,可使用关系密钥将产品变形直接链接至数字资产303、设备类型305、国家307、语言309、和产品311。这些对象的每个可使用关系数据库107中的一个或多个表来表示。此外,发布商313数据对象可经由产品311数据对象关联于产品变形301。这样,可从产品的产品变形提取产品的发布商。因此,对于产品的发布商的值的单个改变改变了对于产品的每个产品变形的发布商的值。此外,索引111可包括第一级关系(例如,产品变形301到产品311的关系)以及第二级关系(例如,产品变形301到发布商313的关系)。附加地或备选地,对象之间的关系可以是一对一的(例如,一个产品变形与一个国家和/或语言关联)或一对多的(例如一个产品变形与多个国家和/或语言关联)。应注意,一般地,一对多特征在技术上难以在保持关系的同时在没有多组附加的信息的情况下在平面表中实现。由此,难以建立保持结构关系信息的可检索索引。然而,在关于可检索索引执行检索时,可使用包括对象图作为附加字段的特征来存储结构。
图4是根据一个实施例的生成具有相关对象图的可检索索引的处理的流程图。一个实施例中,执行模块205执行处理400,并在例如包括如图7所示的处理器和存储器的芯片集中实现。此外,执行模块205和/或索引构建器113的组件可提供用于实现处理400的各个部分的装置以及用于结合服务平台103的其他组件实现其他处理的装置。应注意,关于关系数据库107描述处理400。然而,例如面向对象的数据库的其他类型的持久性存储器也可被考虑,并可用于实现处理400。
在步骤401,执行模块205将数据库(例如关系数据库107)的数据对象转换成在索引111中包括的可检索列的集合中的对应行。执行模块205从数据服务115和/或关系数据库107接收数据对象的一个或多个。通过实例,可基于来自执行模块205的请求接收数据对象。这样,执行模块205使用应用编程接口(API)与数据服务115通信。执行模块205然后解析数据对象,并确定与将包括在可检索索引111的一个或多个列中的每个数据对象对应的文本的一个或多个字段。此外,执行模块205确定与可检索列的每行对应的对象图(步骤403)。在数据对象具有与其他数据对象的一对多关系的情形下,可在可检索列中检索每个其他数据对象,同时对象图存储与每个其他数据对象相关的结构信息。
索引中使用的表的大小和格式可旨在解决特定使用例。这样,索引111代表关系数据库107中的一组表或表的部分。例如,表可存在为填充基于UE101的类型请求个性化服务的浏览器应用117的头版(frontpage)。这样,页面可依赖于UE101的类型、与UE101相关的国家或用户的位置、和/或与UE101相关的语言。头版的服务器可使用一个或多个编程规则来请求表,以为UE101填充信息。
一个实例中,根据特定表中的记录生成索引111的行。记录包括在可检索索引111的一个或多个列中包括的一个或多个文本字段。例如,客户列表可包括用于名的字段、用于姓的字段、和用于地址的字段。在索引111中,每个字段可具有对应列和/或列可包括多个字段。此外,索引111可包括与该记录有关系的其他记录。例如,特定客户可基于一个或多个关系(例如经由密钥)关联至交易表中的一个或多个交易。因此,执行模块205可基于一个或多个关系确定与其他表的记录中的记录对应的附加信息。执行模块205请求该表,并向字段增加与该记录相关的表中的信息(例如,通过附加至索引111的另一字段或将另一字段增加至索引)。这样,至少部分地基于所确定的附加信息来填充行。此外,向对象图添加关系。某些实施例中,还用对应信息来填充对象图。其他实施例中,对象图提供一个或多个可检索字段之间的关系。这样,客户端应用117可使用可检索字段和对象图来重新构建与关系数据库107相关的结构。
然后,由执行模块205生成索引111(步骤405)。索引111包括可检索列的集合(例如字段)和对应的对象图。某些实施例中,索引111的生成包括序列化对象图。此外,一些实施例中,索引111的生成包括压缩对象图。对象图的压缩可经由一个或多个传统方式,例如用zip格式压缩对象图。此外,可在base64中编码对象图(压缩的或未压缩的)。UE101的客户端应用117可具有解码和/或解压缩对象图的一个或多个方法。
此外,执行模块205可确定在关系数据库107中发生了改变(步骤407)。这可基于从数据服务115向索引构建器113发送的信息和/或作为例程轮询和同步处理的一部分。此外,通过更新关系数据库107的数据服务115进行交易的一部分可包括至少部分地使得消息向关系数据库107已改变的索引构建器113发送。
当关系数据库107中发生改变时,更新索引111(步骤409)。索引111可通过基于关系数据库107中的当前信息用新生成的索引替换索引111来更新。此外,索引111可按照更有针对性的方式来更新。通过这样的方法,如果在关系数据库107中记录或与记录相关的信息改变,则标记该记录。然后,在索引111中寻找对于该记录的对应行。一旦找到,用关系数据库107中存储的与该记录相关的当前信息更新和/或替换该行。
图5A是根据一个实施例的基于可检索索引和相关对象图应答查询的处理的流程图。一个实施例中,服务接口109执行处理500,并在例如包括如图7所示的处理器和存储器的芯片集中实现。此外,服务接口109可提供用于实现处理500的各个部分的部件以及用于结合服务平台103的其他组件实现其他处理的部件。应注意,关于关系数据库107描述处理500。然而,例如基于RDF的存储引擎和/或面向对象的数据库的其他类型的持久性存储器也可被考虑,并可用于实现处理500。
在步骤501,服务接口109从UE101接收对与关系数据库107相关的信息的查询。该查询被确定为经由一个或多个项对信息的搜索。服务接口109确定应该依据关系数据库107的一个或多个索引111搜索基于文本对信息的搜索。由此,从存储器获取对应的索引。
至少部分地将搜索项匹配于索引111的可检索列的一个或多个行(步骤503)。这可经由一个或多个传统方法(例如使用Lucene库)来进行。此外,因为索引111与文本信息存储在可检索列中,搜索的方法可以是编程语言独立的。查询的结果可以是匹配或至少部分地匹配与查询相关的项和/或部分项的一个或多个行。然后,可选择与匹配的行对应的一个或多个对象图用于向请求UE101传输(步骤505)。可选择对象图作为检索结果的一部分。然后,服务接口109至少部分地使得匹配的行和/或对应的对象图向UE101的传输(步骤507)。
此外,服务接口109可至少部分地基于对象图使得向UE101的用户呈现信息(步骤509)。呈现可通过由服务接口109发送的信号(例如,包括匹配的行和/或对应的对象图的信号)引起。然后,UE101接收信息,并基于对象图重建与所请求的信息相关的关系数据库107的实例。由此,UE101解压缩和/或去序列化对应的对象图。某些实施例中,请求信息的UE101的应用117具有允许应用117解析对象图的编码,同时在关系数据库107中保持结构信息。由此,如果应用117的用户改变对象图的信息和/或呈现的字段,则UE101可向服务接口109发送消息,以向服务接口109通知该修改。
服务接口109从UE101接收更新消息。然后,服务接口109通过根据从UE101接收的消息生成更新关系数据库107的消息来引起关系数据库107的更新。某些实施例中,消息可被转发而不是生成。然后,数据服务115接收消息并根据从UE101接收的改变的消息更新关系数据库107。关系数据库107能够被更新,因为UE101具有来自对象图的结构信息,以重建关系数据库107的实例。此外,该消息可特定于位置,例如需要被更新的表和/或要被更新的表的对应记录。位置信息可包含在对象图中,因此允许UE101发送更新消息。
图5B是根据一个实施例的利用索引向用户设备提供服务的流程图。在步骤521,UE101从服务接口109请求匹配一个或多个参数(例如国家、设备、语言、种类等)的产品的列表。服务接口109接收查询并基于根据来自UE101的请求公式化的查询523引起对索引111(例如Lucene索引)的搜索。因为该信息被索引,所以服务接口109可经由文本检索获取信息。服务接口109确定产品变形3525满足标准(例如,基于查询523)。服务接口109随后获取与所请求的检索相关的序列化的对象图527(例如,来自匹配行的对象图),并向UE101返回产品变形对象图(步骤529)。UE101可随后处理对象图(例如解码和/或解压缩),并使得向UE101的用户呈现(531)对象图。
通过上述方法,为关系数据库107生成了具有对应对象图的可检索索引。可检索索引提供了快速检索关系数据库107的方式,同时仍旧保持关系数据库107的结构。这样,在服务平台103处的后台处理更加健壮和强大,因此允许更快检索关系数据库107中存储的内容。具有可检索索引的对象图的存储还允许在UE101处重建关系数据库107的结构。通过这样的方法,UE101的应用117能够修改与关系数据库107相关的信息。因为UE101具有来自对象图的信息,其包括对于用户希望修改的部分的关系数据库107的结构,所以用户能够修改在客户端应用117处的关系数据库107的实例,并发送更新消息以更新关系数据库107。此外,当管理关系数据库107的数据服务115接收该消息时,数据服务115可使得索引构建器113更新索引111中的信息。因此,索引111附加地是当前的。对于这个机制的优点在于在索引111中提供当前信息。
这里所述的用于提供包括可检索列的集合和数据库的对应对象图的索引的生成的处理可有利地经由软件、硬件、固件、或软件和/或固件和/或硬件的组合实现。例如,这里所述的包括向用户接口提供与服务的可用性相关的导航信息的处理可有利地经由处理器、数字信号处理(DSP)芯片、专用集成电路(ASIC)、场可编程门阵列(FPGA)等)实现。以下详述用于执行所述功能的这样的示例性硬件。
图6示出可在上面实现本发明实施例的计算机***600。尽管关于特定设备或装备描述计算机***600,但是可设想图6中的其他设备或装备(例如网络元件、服务器等)可采用所示的***600的硬件和组件。计算机***600被编程(例如经由计算机程序代码或指令)以生成如上所述包括可检索列的集合和数据库的对应对象图的索引,并且包括例如总线610的通信机制,用于在计算机***600的其他内部和外部组件之间传递信息。信息(还称为数据)表示成可测量现象的物理表达,典型地为电压,但在其他实施例中包括例如磁、电磁、压力、化学、生物、分子、原子、亚原子和量子交互的现象。例如,南北磁场、或者零和非零电压代表二进制数字(比特)的两个状态(0,1)。其他现象可代表更高基数的数字。在测量之前多个同时的量子状态的叠加代表量子比特(qubit)。一个或多个数字的序列构成用于代表字符的数目或代码的数字数据。在一些实施例中,称为模拟数据的信息通过特定范围内的可测量值的接近闭联集来表示。计算机***600或其一部分构成用于执行生成包括可检索列的集合和数据库的对应的对象图的索引的一个或多个步骤。
总线610包括一个或多个并行的信息导体,从而在耦合至总线610的设备之间快速传送信息。用于处理信息的一个或多个处理器602与总线610耦合。
处理器(或多个处理器)602执行关于计算机程序代码指定的信息的一组操作,涉及包括可检索列的集合和数据库的对应的对象图的索引的生成。计算机程序代码是指令或提供用于处理器和/或计算机***的操作以执行指定功能的指令的语句的集合。例如,代码可通过编译成处理器的本地指令集合的计算机编程语言来编写。代码也可直接使用本地指令集合(例如机器语言)来编写。该组操作包括从总线610带入信息并且将信息置于总线610上。该组操作还典型地包括比较两个或更多个信息单元,移动信息单元的位置,并且组合两个或更多个信息单元,例如通过加或乘或逻辑运算,如OR,异OR(XOR)和AND。,可由处理器执行的该组操作的每个操作通过称为指令的信息(例如一个或多个数字的操作代码)来呈现给处理器。处理器602要执行的操作的序列(例如操作代码的序列)构成处理器指令,还称为计算机***指令,或简单地,计算机指令。处理器可实现为机械、电、磁、光、化学或量子组件等,单独的或组合的。
计算机***600还包括耦合至总线610的存储器604。存储器604(例如随机存取存储器(RAM)或其他动态存储设备)存储包括用于生成包括可检索列的集合和数据库的对应的对象图的索引的处理器指令的信息。动态存储器允许其中存储的信息由计算机***600改变。RAM允许在称为存储器地址的位置存储的信息单元独立于相邻地址处的信息被存储和获取。存储器604还由处理器602使用,以在处理器指令的执行期间存储临时值。计算机***600还包括只读存储器(ROM)606和耦合至总线610的其他静态存储设备,用于存储不被计算机***600改变的静态信息,包括指令。一些存储器包括易失性存储装置,当失去电力时其丢失在其上存储的信息。耦合至总线610的还有非易失性(永久性)存储设备608,例如磁盘、光盘或闪速卡,用于存储即使当计算机***600关闭或失去电力时仍旧存留的信息,包括指令。
可从外部输入设备612(例如包含由人工用户操作的字母数字键的键盘,或传感器)向总线610提供用于生成包括可检索列的集合和数据库的对应的对象图的索引的信息(包括指令)供处理器使用。传感器检测在其周围的条件,并且将那些检测转换成与用于表示计算机***600中的信息的可测量现象兼容的物理表达。耦合至总线610的其他外部设备(主要用于与人工交互)包括:显示器设备614,例如阴极射线管(CRT)或液晶显示器(LCD)、或呈现文本和图像的等离子屏或打印机;以及定点设备616,例如鼠标或跟踪球或光标定向键、或运动传感器,用于控制在显示器614上呈现的小光标图像的位置以及发出与显示器614上呈现的图形元素相关的命令。在一些实施例中,例如,在计算机***600自动执行所有功能而无需人工输入的实施例中,忽略外部输入设备612、显示器设备614和定点设备616中的一个或多个。
在所示实施例中,专用硬件(例如专用集成电路(ASIC)620)耦合至总线610。专用硬件被配置为为了特定目的足够快速地执行未由处理器602执行的操作。专用IC的实例包括:图形加速器卡,用于生成用于显示器614的图像;密码板,用于加密和解密在网络上发送的消息;语音识别;以及到专用外部设备的接口,例如机器臂和医学扫描设备,其重复执行在硬件中更加有效地实施的操作的一些复杂序列。
计算机***600还包括耦合至总线610的通信接口670的一个或多个实例。通信接口670提供耦合至用他们自身的处理器操作的各种外部设备(例如打印机、扫描仪和外部盘)的单向或双向通信耦合。一般地,耦合利用与本地网络680连接的网络链路678,具有他们自身的处理器的各种外部设备连接至本地网络680。例如,通信接口670可以是个人计算机上的并行端口或串行端口或通用串行总线(USB)端口。在一些实施例中,通信接口670是向对应类型的电话线路提供信息通信连接的集成服务数字网络(ISDN)卡或数字订户线路(DSL)卡或电话调制解调器。在一些实施例中,通信接口670是将总线610上的信号转换成用于同轴电缆上的通信连接的信号或转换成用于光纤电缆上的通信连接的光学信号的电缆调制解调器。作为另一实例,通信接口670可以是向兼容LAN(例如以太网)提供数据通信连接的局域网(LAN)卡。也可实施无线链路。对于无线链路,通信接口670发送或接收或既发送又接收承载例如数字数据的信息流的电、声或电磁信号,包括红外和光学信号。例如,在无线手持设备(例如像蜂窝电话的移动电话)中,通信接口670包括无线电带电磁发送器和接收器,称为无线电收发器。某些实施例中,通信接口670使得UE101和服务平台103能够连接至通信网络105。
这里使用术语“计算机可读介质”来表示参与到向处理器602提供信息(包括用于执行的指令)的任意介质。这样的介质可采用许多形式,包括但不限于,计算机可读存储介质(例如,非易失性介质、易失性介质)和传输介质。非暂态介质(诸如非易失性介质)包括例如光或磁盘,例如存储设备608。易失性介质包括例如动态存储器604。传输介质包括例如同轴电缆、铜线、光纤电缆、和载波,其在无需布线或电缆的情况下在空间中行进,例如声波和电磁波,包括无线电、光和红外波。信号包括通过传输介质发送的振幅、频率、相位、极化或其他物理属性的人工瞬间改变。计算机可读介质的通用形式包括例如软盘、软磁盘、硬盘、磁带、任意其他磁介质、CD-ROM、CDRW、DVD、任意其他光学介质、穿孔卡、纸带、光学标记表、具有孔或其他光学可识别特征的模式的任意其他物理介质,RAM、PROM、EPROM、FLASH-EPROM、任意其他存储器芯片或盒、载波、计算机可从中读取的任意其他介质。此处使用计算机可读存储介质指代除了传输介质之外的任意计算机可读介质。
在一个或多个有形的介质中进行编码的逻辑包括在计算机可读存储介质和诸如ASIC620的专用硬件上的处理器指令中的一个或两个。
网络链路678典型地通过一个或多个网络使用传输介质将信息通信提供给使用或处理该信息的其它设备。例如,网络链路678可通过本地网络680将连接提供给主计算机682或由因特网服务提供商(ISP)运营的装备684。ISP装备684进而通过现在通常被称为因特网690的网络中的公共的、全球分组交换通信网络提供数据通信服务。
与因特网连接的被称为服务器主机692的计算机托管响应于通过因特网接收的信息提供服务的处理。例如,服务主机692托管处理,所述处理提供用于表示在显示器614上呈现的视频数据的信息。可以预期的是,可在诸如主机682和服务器692的其他计算机***中以各种配置方式来部署***600的组件。
本发明的至少一些实施方式与用于实现这里描述的一些或全部技术的计算机***600的使用相关。根据本发明的一个实施方式,这些技术由计算机***600响应于处理器602执行包含在存储器604中的一个或多个处理器指令的一个或多个序列而执行。也被称为计算机指令、软件和程序代码的这种指令可从诸如存储设备608或网络链路678的另一计算机可读介质读入到存储器604。包含在存储器604中的指令序列的执行促使处理器602执行这里描述的方法步骤中的一个或多个。在可替换的实施方式中,诸如ASIC620的硬件可用于替换实现本发明的软件或与实现本发明的软件结合。从而,本发明的实施例不局限于硬件和软件的任何特定组合,除非在这里明确声明。
通过通信接口670在网络链路678和其它网络上传输的信号承载去往和来自计算机***600的信息。计算机***600可通过网络链路678和通信接口670并通过网络680、690等发送和接收包括程序代码的信息。在使用因特网690的实例中,服务器主机692通过因特网690、ISP装备684、本地网络680和通信接口670,传输由计算机600发送的消息所请求的用于特定应用的程序代码。所接收的代码可由处理器602在接收时执行,或可存储在存储器604或存储设备608或其它非易失性存储器中以用于稍后的执行,或者两者。在该方式下,计算机***600可以按载波上信号的形式获得应用程序代码。
计算机可读介质的各种形式可涉及将一个或多个指令序列或数据或两者承载给处理器602以进行执行。例如,指令和数据初始可承载在诸如主机682的远程计算机的磁盘中。远程计算机将指令和数据装载到其动态存储器中,并使用调制解调器通过电话线发送指令和数据。位于计算机***600本地的调制解调器接收电话线上的指令和数据,并使用红外发送器将指令和数据转换为用作网络链路678的红外载波上的信号。用作通信接口670的红外检测器接收在红外信号中承载的指令和数据,并将表示指令和数据的信息放置在总线610上。总线610将信息承载到存储器604,处理器602从存储器604获取指令并且使用随指令发送的一些数据执行指令。接收在存储器604中的指令和数据可以可选的在由处理器602执行之前或之后存储在存储设备608上。
图7描述了在其上可以实现本发明实施方式的芯片集或芯片700。将芯片集700编程为生成如此处所述的包括可检索列的集合和数据库的对应的对象图的索引,并且包括例如被并入一个或多个物理封装(例如,芯片)的相对于图6所描述的处理器和存储器组件。通过示例的方式,物理封装包括在结构装配(例如,基板)上的一个或多个材料、组件、和/或导线的安排,从而提供诸如物理强度、尺寸保护和/或电子交互限制的一个或多个特性。可以预期的是,在特定的实施方式中,芯片集700可在单一的芯片上实现。还可以预期的是,某些实施例中,芯片集或芯片700可实现为单个“片上***”。还可以预期的是,某些实施例中,将不使用单独ASIC,例如,将通过一个或多个处理器执行这里公开的所有相关功能。芯片集或芯片700,或者其一部分,构成用于执行提供与服务的可用性相关的用户接口导航信息的一个或多个步骤的部件。芯片集或芯片700,或者其一部分,构成用于执行生成包括可检索列的集合和数据库的对应对象图的索引的一个或多个步骤的部件。
在一个实施方式中,芯片集或芯片700包括诸如用于在芯片集7600的组件之间传递信息的总线701的通信机制。处理器703具有与总线701的连通性以执行例如存储在存储器705中的指令和处理信息。处理器703可包括一个或多个处理核,其中将每个核配置为独立地执行。多核处理器能够在单一物理封装中进行多处理。多核处理器的实施例包括两个、四个、八个或更多个处理核。可替换地或另外地,处理器703可包括一个或多个通过总线701共同(intandem)配置的微处理器,以便能够独立地执行指令、流水线和多线程。处理器703还可配备有一个或多个专用组件以执行特定的处理功能和任务,例如一个或多个数字信号处理器(DSP)707、或一个或多个专用集成电路(ASIC)709。典型地,将DSP707配置为独立于处理器703实时处理真实世界的信号(例如,声音)。相似地,可将ASIC709配置为执行不能由更通用的处理器容易地执行的专用功能。有助于执行这里描述的本发明的功能的其它专用组件可包括一个或多个现场可编程门阵列(FPGA)(没有示出)、一个或多个控制器(没有示出)、或一个或多个其它专用计算机芯片。
一个实施例中,芯片集或芯片800仅包括一个或多个处理器和支持和/或涉及和/或用于一个或多个处理器的一些软件和/或固件。
处理器703和附带的组件具有经由总线701到存储器705的连通性。存储器705包括用于存储可执行指令的动态存储器(例如,RAM、磁盘、可写光盘等)和静态存储器(例如,ROM、CD-ROM等),其中在执行时可执行指令执行这里描述的创造性步骤以生成包括可检索列的集合和数据库的对应的对象图的索引。存储器705还存储与创造性步骤的执行相关的数据或由创造性步骤的执行所产生的数据。
图8是根据一个实施例的能够在图1的***中进行操作的用于通信的移动终端(例如,手持机)的示例性组件的示意图。在一些实施例中,移动终端800或其一部分,构成用于执行促使对与数据库相关的信息的检索以及接收和更新信息的一个或多个步骤的部件。一般地,通常按照前端和后端特性对无线电接收器进行限定。接收器的前端包括全部的射频(RF)电路,而后端包括全部的基带处理电路。如在本申请中所使用的,术语“电路”涉及(1)仅为硬件实现方式(例如仅在模拟和/或数字电路中的实现方式),和(2)电路和软件(和/或固件)的结合(例如,如果应用于特定上下文,共同工作的包括数字信号处理器的处理器、软件和存储器处理器的组合促使诸如移动电话或服务器的装置执行各种功能)。该“电路”的定义应用于在该申请中对该术语的全部使用,包括在任何权利要求的使用。作为另一实施例,如在本申请中使用的并且如果可应用于特定的上下文,则术语“电路”还可覆盖仅由处理器(或多个处理器)和其(或它们的)对应的软件/固件的实现方式。如果可应用于特定上下文,则术语“电路”还可覆盖例如移动电话中的基带集成电路或应用处理器集成电路或者蜂窝网络设备或其它网络设备中的相似集成电路。
电话的相关内部组件包括主控制单元(MCU)803、数字信号处理器(DSP)805、和包括麦克风增益控制单元和扬声器增益控制单元的接收器/发送器单元。主显示器单元807向用户提供显示以支持执行或支持促使对与数据库相关的信息的检索以及接收和更新信息的步骤的各种应用和移动终端功能。显示器8包括配置为显示移动终端(例如,移动电话)的用户接口的至少一部分的显示器电路。此外,将显示器807和显示器电路配置为促进移动终端的至少一些功能的用户控制。音频功能电路809包括麦克风811和将从麦克风811输出的语音信号进行放大的麦克风放大器。将从麦克风811输出的经放大的语音信号提供给编码器/解码器(CODEC)813。
无线电部分815对功率进行放大,并对频率进行转换,以便通过天线817与包括在移动通信***中的基站进行通信。功率放大器(PA)819和发送器/调制电路可操作地对MCU803进行响应,将来自PA819的输出耦合至双工器821或循环器(circulator)或天线开关,这是现有技术公知的。PA819还与电池接口和功率控制单元820耦合。
在使用中,移动终端801的用户对麦克风811说话,且他或她的语音连同任何检测到的背景噪声被转换为模拟电压。然后通过模拟数字转换器(ADC)823将模拟电压转换为数字信号。控制单元803将数字信号路由到DSP805中以在DSP805中进行处理,例如语音编码、信道编码、加密和交织。在一个实施方式中,通过没有单独示出的单元,使用诸如全球演进(EDGE)、通用分组无线服务(GPRS)、全球移动通信***(GSM)、因特网协议多媒体子***(IMS)、通用移动通信***(UMTS)等的蜂窝传输协议,以及诸如微波接入(WiMAX)、长期演进(LTE)网络、码分多址(CDMA)、宽带码分多址(WCDMA)、无线保真(WiFi)、卫星等的其它合适的无线介质,对经过处理的语音信号进行编码。
随后,将编码的信号路由到均衡器825,以便对在通过空中传输中发生的诸如相位和幅度失真的任何频率相关损耗进行补偿。在对比特流进行均衡后,调制器827将信号与在RF接口829中生成的RF信号结合。调制器827通过频率或相位调制生成正弦波。为了准备用于传输的信号,上变频器831将从调制器827输出的正弦波与由合成器833生成的另一正弦波组合,以获得期望的传输频率。从而将信号通过PA819进行发送,以使信号增加到合适的功率电平。在实际的***中,PA819作为可变增益放大器,由DSP805通过从网络基站接收的信息来控制PA819的增益。然后信号在双工器821中进行滤波,并可选地发送给天线耦合器835以进行阻抗匹配,从而提供最大的功率传送。最后,经由天线817将信号发送给本地基站。可提供自动增益控制(AGC)以控制接收器最后阶段的增益。可将信号从这里转发到远端电话,其可以是另一蜂窝电话、其它移动电话或与公共交换电话网络(PSTN)或其它电话网络连接的固定电话。
传输给移动终端801的语音信号通过天线817进行接收,并立即由低噪声放大器(LNA)837放大。下变频器839降低载波频率,且解调器841去除RF,只留下数字比特流。随后信号通过均衡器825,并由DSP805进行处理。数模转换器(DAC)843对信号进行转换,并将产生的输出通过扬声器845传送给用户,所有的操作都在主控制单元(MCU)803的控制下,其中主控制单元可实现为中央处理单元(CPU)(在图中没有示出)。
MCU803从键盘847接收包括输入信号的各种信号。与其它用户输入组件(例如,麦克风811)结合的键盘847和/或MCU803包括用于管理用户输入的用户接口电路。MCU803运行用户接口软件,便于对移动终端的至少一些功能的用户控制,以促使对与数据库相关的信息的检索以及接收和更新信息。MCU803还分别将显示命令和切换命令递送给显示器807和语音输出切换控制器。此外,MCU803与DSP805交换信息,并可访问可选地并入的SIM卡849和存储器851。此外,MCU803执行终端所需的各种控制功能。DSP805可根据实现方式在语音信号上执行任何种类的传统数字处理功能。此外,DSP805从麦克风811检测的信号确定本地环境的背景噪声电平,并为将麦克风811的增益设置为所选的补偿移动终端801的用户的自然倾向(tendency)的电平。
CODEC813包括ADC823和DAC843。存储器851存储包括呼叫进入声调数据的各种数据,并能够存储包括经由例如全球因特网接收的音乐数据的其它数据。软件模块可驻留在RAM存储器、闪存、寄存器、或现有技术中已知的任何其它形式的可写存储介质。存储器设备851可以是,但不局限于,单一存储器、CD、DVD、ROM、RAM、EEPROM、光学存储器、或能够存储数字数据的任何其它非易失性存储介质。
例如,可选地并入的SIM卡849承载重要的信息,例如蜂窝电话号码、提供服务的载波、订阅细节和安全信息。SIM卡849主要用于在无线电网络上识别移动终端801。卡849还包含用于存储个人电话号码注册、文本消息和用户专用移动终端设置的存储器。
尽管结合多个实施方式和实现方式介绍了本发明,但是本发明不局限于此,而是可覆盖落入所附权利要求范围的各种明显修改和等同安排。尽管本发明的特征在权利要求中以特定的组合进行表达,但可以预期的是,这些特征可以按任意的组合和顺序进行安排。
Claims (16)
1.一种方法,包括:
将数据库的多个数据对象转换成可检索列的集合中的对应行;
确定与可检索列的每行对应的对象图;和
生成包括可检索列的集合和对应的对象图的索引。
2.如权利要求1所述的方法,进一步包括:
确定数据库中数据对象之一和一个或多个其他数据对象之间的一个或多个关系,
其中与所述一个数据对象对应的对象图包括所述关系的表示。
3.如权利要求1所述的方法,进一步包括:
从设备接收对与数据库相关的信息的查询;
至少部分地将所述信息与可检索列的一个或多个行进行匹配;
选择与匹配的行对应的对象图;和
至少部分地促使匹配的行和对应的对象图向所述设备的传输。
4.如权利要求3所述的方法,进一步包括:
接收至少部分地基于向所述设备传输的对应的对象图来更新数据库的请求;和
促使根据所述请求对数据库的更新。
5.如权利要求1所述的方法,进一步包括:
确定在数据库中已发生改变;和
基于所述改变更新所述索引。
6.如权利要求1所述的方法,其中所述数据库为包括记录的表的关系数据库,并且其中各个数据对象包括各自的记录,并且所述索引与特定表关联。
7.如权利要求6所述的方法,进一步包括:
至少部分地基于特定表的记录填充对应的行;
基于一个或多个关系确定与其他表中的记录对应的附加信息;和
至少部分地基于所述附加信息填充对应的行。
8.如权利要求1所述的方法,其中对对象图用标记语言进行编码并序列化,并且其中对对象图进行压缩。
9.一种装置,包括:
用于将数据库的多个数据对象转换成可检索列的集合中的对应行的部件;
用于确定与可检索列的每行对应的对象图的部件;和
用于生成包括可检索列的集合和对应的对象图的索引的部件。
10.如权利要求9所述的装置,进一步包括:
用于确定数据库中数据对象之一和一个或多个其他数据对象之间的一个或多个关系的部件,
其中与所述一个数据对象对应的对象图包括所述关系的表示。
11.如权利要求10所述的装置,进一步包括:
用于从设备接收对与数据库相关的信息的查询的部件;
用于至少部分地将所述信息与可检索列的一个或多个行进行匹配的部件;
用于选择与匹配的行对应的对象图的部件;和
用于至少部分地促使匹配的行和对应的对象图向所述设备的传输的部件。
12.如权利要求11所述的装置,进一步包括:
用于接收至少部分地基于向所述设备传输的对应的对象图来更新数据库的请求的部件;和
用于促使根据所述请求对数据库的更新的部件。
13.如权利要求9所述的装置,进一步包括:
用于确定在数据库中已发生改变的部件;和
用于基于所述改变更新所述索引的部件。
14.如权利要求9所述的装置,其中所述数据库为包括记录的表的关系数据库,并且其中各个数据对象包括各自的记录,并且所述索引与特定表关联。
15.如权利要求14所述的装置,进一步包括:
用于至少部分地基于特定表的记录填充对应的行的部件;
用于基于一个或多个关系确定与其他表中的记录对应的附加信息的部件;和
用于至少部分地基于所述附加信息填充对应的行的部件。
16.如权利要求9所述的装置,其中对对象图用标记语言进行编码并序列化,并且其中对对象图进行压缩。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/767,457 US8655894B2 (en) | 2010-04-26 | 2010-04-26 | Method and apparatus for index generation and use |
US12/767,457 | 2010-04-26 | ||
PCT/FI2011/050283 WO2011135160A1 (en) | 2010-04-26 | 2011-04-01 | Method and apparatus for index generation and use |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102918529A CN102918529A (zh) | 2013-02-06 |
CN102918529B true CN102918529B (zh) | 2016-01-27 |
Family
ID=44816673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180021360.4A Active CN102918529B (zh) | 2010-04-26 | 2011-04-01 | 索引生成和使用的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8655894B2 (zh) |
EP (1) | EP2564332A4 (zh) |
CN (1) | CN102918529B (zh) |
WO (1) | WO2011135160A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2320288B1 (en) * | 2009-11-06 | 2016-12-21 | Xsens Holding B.V. | A method and a system for enabling a wireless communication between a master unit and a sensor unit |
JP5745932B2 (ja) * | 2011-05-20 | 2015-07-08 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | グラフデータに写像の像であるオブジェクトに対する操作を反映する方法、プログラム、および、システム |
US9002803B2 (en) * | 2011-06-07 | 2015-04-07 | Workday, Inc. | Role-based security policy for an object-oriented database system |
CN103092886B (zh) * | 2011-11-07 | 2016-03-02 | ***通信集团公司 | 一种数据查询操作的实现方法、装置及*** |
US8954475B2 (en) * | 2011-11-10 | 2015-02-10 | Microsoft Technology Licensing, Llc | Deep cloning of objects using binary format |
US9576020B1 (en) * | 2012-10-18 | 2017-02-21 | Proofpoint, Inc. | Methods, systems, and computer program products for storing graph-oriented data on a column-oriented database |
US9665615B2 (en) * | 2012-10-24 | 2017-05-30 | Microsoft Technology Licensing, Llc | Search-as-you-type on a relational database |
US9367652B2 (en) * | 2013-04-24 | 2016-06-14 | Globalfoundries Inc. | Cross-domain data artifacts consolidation in model context |
US10091461B2 (en) * | 2013-10-15 | 2018-10-02 | Polycom, Inc. | System and method for real-time adaptation of a conferencing system to current conditions of a conference session |
CN104750706B (zh) * | 2013-12-26 | 2019-06-04 | 北京猎豹移动科技有限公司 | 驱动程序信息的提供方法、装置和*** |
US11030171B2 (en) * | 2015-01-09 | 2021-06-08 | Ariba, Inc. | Elastic sharding of data in a multi-tenant cloud |
WO2016137114A1 (ko) * | 2015-02-23 | 2016-09-01 | 건국대학교 산학협력단 | 메타 지식 데이터베이스를 구축하고 쿼리를 처리하는 방법 및 장치 |
US10049041B2 (en) * | 2015-07-30 | 2018-08-14 | EMC IP Holding Company LLC | Memory centric database architecture |
WO2018015814A1 (en) * | 2016-07-22 | 2018-01-25 | Haag Kg Albert | Systems and methods for database compression and evaluation |
CN106484840A (zh) * | 2016-09-30 | 2017-03-08 | 上海聚力传媒技术有限公司 | 自动更新垂直检索索引的方法和装置 |
US10803034B2 (en) * | 2016-11-23 | 2020-10-13 | Amazon Technologies, Inc. | Global column indexing in a graph database |
CN110399375B (zh) * | 2019-07-24 | 2020-06-26 | 南京云白信息科技有限公司 | 一种数据表索引创建方法及装置 |
CN111259004B (zh) * | 2020-01-08 | 2023-04-14 | 腾讯科技(深圳)有限公司 | 一种存储引擎中数据索引的方法以及相关装置 |
US11520732B2 (en) * | 2020-06-16 | 2022-12-06 | Sap Se | Systems and tools for data archiving |
CN112800287B (zh) * | 2021-04-15 | 2021-07-09 | 杭州欧若数网科技有限公司 | 基于图数据库的全文索引方法和*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6366934B1 (en) * | 1998-10-08 | 2002-04-02 | International Business Machines Corporation | Method and apparatus for querying structured documents using a database extender |
CN1561496A (zh) * | 2001-09-28 | 2005-01-05 | 甲骨文国际公司 | 用于访问关系型数据库***中的分层数据的高效索引结构 |
CN101416132A (zh) * | 2006-01-27 | 2009-04-22 | 先进微装置公司 | 用于制造数据索引的方法及装置 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5201046A (en) * | 1990-06-22 | 1993-04-06 | Xidak, Inc. | Relational database management system and method for storing, retrieving and modifying directed graph data structures |
US5295261A (en) * | 1990-07-27 | 1994-03-15 | Pacific Bell Corporation | Hybrid database structure linking navigational fields having a hierarchial database structure to informational fields having a relational database structure |
US5956728A (en) | 1996-07-17 | 1999-09-21 | Next Software, Inc. | Object graph editing context and methods of use |
US6163776A (en) * | 1998-03-23 | 2000-12-19 | Software Tree, Inc. | System and method for exchanging data and commands between an object oriented system and relational system |
US7366708B2 (en) * | 1999-02-18 | 2008-04-29 | Oracle Corporation | Mechanism to efficiently index structured data that provides hierarchical access in a relational database system |
US6591272B1 (en) | 1999-02-25 | 2003-07-08 | Tricoron Networks, Inc. | Method and apparatus to make and transmit objects from a database on a server computer to a client computer |
US7024425B2 (en) * | 2000-09-07 | 2006-04-04 | Oracle International Corporation | Method and apparatus for flexible storage and uniform manipulation of XML data in a relational database system |
US6772172B2 (en) * | 2001-04-27 | 2004-08-03 | Sun Microsystems, Inc. | Method, system, program, and computer readable medium for indexing object oriented objects in an object oriented database |
US7149733B2 (en) * | 2002-07-20 | 2006-12-12 | Microsoft Corporation | Translation of object queries involving inheritence |
WO2004025518A1 (en) | 2002-09-13 | 2004-03-25 | Ashok Suresh | Information management system |
US20050119999A1 (en) * | 2003-09-06 | 2005-06-02 | Oracle International Corporation | Automatic learning optimizer |
US7634498B2 (en) * | 2003-10-24 | 2009-12-15 | Microsoft Corporation | Indexing XML datatype content system and method |
JP4709213B2 (ja) * | 2004-06-23 | 2011-06-22 | オラクル・インターナショナル・コーポレイション | 変換を使用したクエリの効率的な評価 |
US7493335B2 (en) * | 2004-07-02 | 2009-02-17 | Graphlogic Inc. | Object process graph relational database interface |
US20060149712A1 (en) | 2004-12-30 | 2006-07-06 | Uwe Kindsvogel | Searching based on object relationships |
EP1677209B1 (en) | 2004-12-30 | 2008-11-05 | Sap Ag | Searching based on object relationships |
CN102981815B (zh) | 2005-03-03 | 2017-05-31 | 汤姆森路透社全球资源公司 | 用于实施业务过程应用程序的***和方法 |
US7698294B2 (en) | 2006-01-11 | 2010-04-13 | Microsoft Corporation | Content object indexing using domain knowledge |
US7827168B2 (en) * | 2007-05-30 | 2010-11-02 | Red Hat, Inc. | Index clustering for full text search engines |
US8949257B2 (en) * | 2008-02-01 | 2015-02-03 | Mandiant, Llc | Method and system for collecting and organizing data corresponding to an event |
US20100082646A1 (en) | 2008-09-26 | 2010-04-01 | Microsoft Corporation | Tracking constraints and dependencies across mapping layers |
-
2010
- 2010-04-26 US US12/767,457 patent/US8655894B2/en active Active
-
2011
- 2011-04-01 WO PCT/FI2011/050283 patent/WO2011135160A1/en active Application Filing
- 2011-04-01 EP EP11774465.6A patent/EP2564332A4/en not_active Withdrawn
- 2011-04-01 CN CN201180021360.4A patent/CN102918529B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6366934B1 (en) * | 1998-10-08 | 2002-04-02 | International Business Machines Corporation | Method and apparatus for querying structured documents using a database extender |
CN1561496A (zh) * | 2001-09-28 | 2005-01-05 | 甲骨文国际公司 | 用于访问关系型数据库***中的分层数据的高效索引结构 |
CN101416132A (zh) * | 2006-01-27 | 2009-04-22 | 先进微装置公司 | 用于制造数据索引的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2564332A1 (en) | 2013-03-06 |
WO2011135160A1 (en) | 2011-11-03 |
US20110264666A1 (en) | 2011-10-27 |
CN102918529A (zh) | 2013-02-06 |
EP2564332A4 (en) | 2016-08-17 |
US8655894B2 (en) | 2014-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102918529B (zh) | 索引生成和使用的方法和装置 | |
CN102770858B (zh) | 使用外部渲染规则来渲染web页面的方法和设备 | |
CN102473187B (zh) | 浏览建模的方法和装置 | |
CN104584046B (zh) | 用于情境内容建议的方法和装置 | |
CN102713904A (zh) | 利用可缩放的数据结构的方法和装置 | |
CN102439593B (zh) | 提供个性化虚拟环境的方法和装置 | |
CN105190621B (zh) | 用于内容的异步分发的方法和装置 | |
CN102939579A (zh) | 绑定用户接口元素和粒度反映处理的方法和装置 | |
CN103907113A (zh) | 用于分布式脚本处理的方法和装置 | |
CN102947827A (zh) | 生成协作播放列表的方法和装置 | |
CN102349314B (zh) | 基于用户地理位置来访问内容的方法和装置 | |
CN104798082A (zh) | 用于提供用于数据流的隐私策略的方法和装置 | |
CN102906747A (zh) | 用于可移动存储介质上的便携式索引的方法和装置 | |
CN103797479B (zh) | 用于混合社交搜索模型的方法和装置 | |
CN102349278B (zh) | 用于按需内容映射的方法及设备 | |
CN103124966A (zh) | 聚集和链接位置数据的方法和设备 | |
CN103620593A (zh) | 用于提供基于特征的协同过滤的方法和装置 | |
CN102640153A (zh) | 提供媒体内容搜索能力的方法和装置 | |
CN102449625A (zh) | 用于自动地理位置搜索认知的方法和装置 | |
CN103003797A (zh) | 用于分配计算闭包的方法和装置 | |
CN103703460A (zh) | 用于针对实时推荐的协同过滤的方法和装置 | |
CN102985922A (zh) | 在计算空间中管理分布计算的方法和装置 | |
CN103299300A (zh) | 提供输入建议的方法和装置 | |
CN103906993A (zh) | 用于基于感兴趣点(poi)信息构造道路网络的方法和设备 | |
CN103098421A (zh) | 用于由动态群组共享数据的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
C41 | Transfer of patent application or patent right or utility model | ||
GR01 | Patent grant | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20160105 Address after: Espoo, Finland Applicant after: Technology Co., Ltd. of Nokia Address before: Espoo, Finland Applicant before: Nokia Oyj |