更新数据的方法、数据库触发器和搜索引擎的制作方法

文档序号:6518985阅读:173来源:国知局
更新数据的方法、数据库触发器和搜索引擎的制作方法
【专利摘要】本发明提供一种更新数据的方法、数据库触发器和搜索引擎,方法包括:当业务表中的业务数据的属性更新时,创建更新日志,业务表包括各业务数据的唯一标识以及各业务数据的至少一个属性,更新日志包括更新的业务数据的唯一标识和更新类型;触发搜索引擎根据更新日志更新索引数据,索引数据与更新的业务数据具有相同的唯一标识,搜索引擎用于搜索索引数据。根据本发明的更新数据的方法、数据库触发器和搜索引擎,通过建立更新日志,并触发搜索引擎根据更新日志及时更新索引数据,能够尽量使搜索数据的属性与业务表中的业务数据的属性保持一致。
【专利说明】更新数据的方法、数据库触发器和搜索引擎
【技术领域】
[0001]本发明涉及搜索技术,尤其涉及一种更新数据的方法、数据库触发器和搜索引擎。【背景技术】
[0002]搜索是IT (Information Technology,信息技术)系统中不可缺少的功能,其可以大大地提升应用系统的数据查找速度。现在普遍采用的是IT系统中的全局搜索功能,其可在全局范围内查找各个子系统的数据。目前,通常采用搜索引擎作为搜索功能的载体。具体地,搜索引擎先爬取业务子系统的数据,再对数据进行分词、创建倒排索引,在搜索阶段通过查询倒排索引找到对应的数据条目,从而提供快速的查找功能。
[0003]实际运用中,业务子系统中的数据会随时进行更新,如果搜索引擎中的索引数据更新滞后的话,将大大影响使用搜索引擎的用户体验。因此,如何保持搜索引擎中的索引数据与业务子系统的数据一致成为亟需解决的问题。

【发明内容】

[0004]本发明提供一种更新数据的方法、数据库触发器和搜索引擎,以解决搜索引擎中的索引数据与业务子系统的数据不能及时地保持一致的问题。
[0005]本发明第一方面提供一种更新数据的方法,包括:
[0006]当业务表中的业务数据的属性更新时,创建更新日志,所述业务表包括各业务数据的唯一标识以及各业务数据的至少一个属性,所述更新日志包括更新的业务数据的唯一标识和更新类型;
[0007]触发搜索引擎根据所述更新日志更新索引数据,所述索引数据与所述更新的业务数据具有相同的唯一标识,所述搜索引擎用于搜索所述索引数据。
[0008]根据第一方面,在第一种可能的实现方式中,所述触发所述搜索引擎根据所述更新日志更新索引数据包括:
[0009]若是所述更新类型为数据增加类型,触发所述搜索引擎根据所述更新的业务数据的唯一标识从所述业务表中获取增加的业务数据,并根据所述增加的业务数据生成索引、所述索引数据和所述索引数据的属性,以使所述搜索引擎根据所述索引搜索到所述索引数据,所述索引数据的属性与所述更新的业务数据的属性相同;
[0010]若是所述更新类型为数据删除类型,触发所述搜索引擎根据所述更新的业务数据的唯一标识删除所述索引数据;
[0011]若是所述更新类型为数据修改类型,触发所述搜索引擎根据所述更新的业务数据的唯一标识获取更新后的业务数据的各属性,并根据所获取到的业务数据的各属性更新所述索引数据的各属性,以使所述索引数据的各属性与所获取到的业务数据的各属性相同。
[0012]结合第一种可能的实现方式或第二种可能的实现方式,在触发所述搜索引擎根据所述更新日志更新索引数据之后,还包括:
[0013]删除所述更新的业务数据对应的更新日志。[0014]本发明第二方面提供一种更新数据的方法,包括:
[0015]当业务表中的业务数据的属性更新时,获取更新日志,所述更新日志是当业务表中的业务数据更新时生成的,所述业务表包括各业务数据的唯一标识以及各业务数据的至少一个属性,所述更新日志包括更新的业务数据的唯一标识和更新类型;
[0016]根据所述更新日志更新索引数据,所述索引数据是搜索引擎根据索引搜索到的数据且所述索引数据与所述更新的业务数据具有相同的唯一标识。
[0017]根据第二方面,在第一种可能的实现方式中,所述根据所述更新日志更新索引数据中的所述业务数据包括:
[0018]若是所述更新类型为数据增加类型,根据所述更新的业务数据的唯一标识从所述业务表中获取增加的业务数据,并根据所述增加业务数据创建索引、所述索引数据和索引数据的属性,以使所述搜索引擎根据所述索引搜索到所述索引数据,所述索引数据的属性与所述更新的业务数据的属性相同;
[0019]若是所述更新类型为数据删除类型,根据所述更新的业务数据的唯一标识删除所述索引数据;
[0020]若是所述更新类型为数据修改类型,根据所述更新的业务数据的唯一标识获取更新后的业务数据的各属性,并根据所获取到的业务数据的更新所述索引数据的各属性,以使所述索引数据的各属性与所获取到的业务数据的各属性相同。
[0021]结合第一种可能的实现方式或第二种可能的实现方式,在根据所获取到的业务数据的更新所述索引数据的各属性之后,还包括:
[0022]删除所述更新的业务数据对应的更新日志。
[0023]本发明第三方面提供一种数据库触发器,包括:
[0024]创建单元,用于当业务表中的业务数据的属性更新时,创建更新日志,所述业务表包括各业务数据的唯一标识以及各业务数据的至少一个属性,所述更新日志包括更新的业务数据的唯一标识和更新类型;
[0025]触发单元,用于触发搜索引擎根据所述更新日志更新索引数据,所述索引数据与所述更新的业务数据具有相同的唯一标识,所述搜索引擎用于搜索所述索引数据。
[0026]根据第三方面,在第一种可能的实现方式中,所述触发单元具体用于:
[0027]若是所述更新类型为数据增加类型,触发所述搜索引擎根据所述更新的业务数据的唯一标识从所述业务表中获取增加的业务数据,并根据所述增加的业务数据生成索引、所述索引数据和所述索引数据的属性,以使所述搜索引擎根据所述索引搜索到所述索引数据,所述索引数据的属性与所述更新的业务数据的属性相同;
[0028]若是所述更新类型为数据删除类型,触发所述搜索引擎根据所述更新的业务数据的唯一标识删除所述索引数据;
[0029]若是所述更新类型为数据修改类型,触发所述搜索引擎根据所述更新的业务数据的唯一标识获取更新后的业务数据的各属性,并根据所获取到的业务数据的各属性更新所述索引数据的各属性,以使所述索引数据的各属性与所获取到的业务数据的各属性相同。
[0030]结合第一种可能的实现方式或第二种可能的实现方式,还包括:
[0031]第一删除单元,用于删除所述更新的业务数据对应的更新日志。
[0032]本发明第四方面提供一种搜索引擎,包括:[0033]获取单元,用于获取更新日志,所述更新日志是当业务表中的业务数据更新时生成的,所述业务表包括各业务数据的唯一标识以及各业务数据的至少一个属性,所述更新日志包括更新的业务数据的唯一标识和更新类型;
[0034]更新单元,用于根据所述更新日志更新索引数据,所述索引数据是搜索引擎根据索引搜索到的数据且所述索引数据与所述更新的业务数据具有相同的唯一标识。
[0035]根据第四方面,在第一种可能的实现方式中,所述更新单元具体用于:
[0036]若是所述更新类型为数据增加类型,根据所述更新的业务数据的唯一标识从所述业务表中获取增加的业务数据,并根据所述增加业务数据创建索引、所述索引数据和索引数据的属性,以使所述搜索引擎根据所述索引搜索到所述索引数据,所述索引数据的属性与所述更新的业务数据的属性相同;
[0037]若是所述更新类型为数据删除类型,根据所述更新的业务数据的唯一标识删除所述索引数据;
[0038]若是所述更新类型为数据修改类型,根据所述更新的业务数据的唯一标识获取更新后的业务数据的各属性,并根据所获取到的业务数据的更新所述索引数据的各属性,以使所述索引数据的各属性与所获取到的业务数据的各属性相同。
[0039]结合第一种可能的实现方式或第二种可能的实现方式,还包括:
[0040]第二删除单元,用于删除所述更新的业务数据对应的更新日志。
[0041]由上述技术方案可知,本发明提供的更新数据的方法、数据库触发器和搜索引擎,通过建立更新日志,并触发搜索引擎根据更新日志及时更新索引数据,能够尽量使搜索数据的属性与业务表中的业务数据的属性保持一致。此外,搜索引擎仅针对更新日志进行搜索数据的更新即可,无需爬取整个业务表中的全部数据,大大节省了更新数据的时间,提高了更新数据的效率。
【专利附图】

【附图说明】
[0042]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0043]图1为根据本发明一实施例的更新数据的方法的流程示意图;
[0044]图2为根据本发明另一实施例的更新数据的方法的流程示意图;
[0045]图3为根据本发明又一实施例的更新数据的方法的流程示意图;
[0046]图4A为根据本发明再一实施例的数据库触发器的结构示意图;
[0047]图4B为根据本发明另一实施例的数据库触发器的结构示意图;
[0048]图5A为根据本发明又一实施例的搜索引擎的结构示意图;
[0049]图5B为根据本发明再一实施例的搜索引擎的结构示意图;
[0050]图6为根据本发明另一实施例的数据库触发器的结构示意图;
[0051]图7为根据本发明又一实施例的搜索引擎的结构示意图。
【具体实施方式】[0052]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0053]实施例一
[0054]本实施例提供一种更新数据的方法,该更新数据的方法适用于搜索系统,该搜索系统中的搜索引擎可以根据索引查询到索引数据。本实施例的更新数据的方法的执行主体为数据库触发器。
[0055]如图1所示,为根据本实施例的更新数据的方法的流程示意图。
[0056]步骤101,当业务表中的业务数据更新时,创建更新日志。
[0057]其中,业务表包括各业务数据的唯一标识以及各业务数据的至少一个属性,更新日志包括更新的业务数据的唯一标识和更新类型。其中更新类型可以是数据增加类型、数据删除类型或数据修改类型。具体地,数据增加类型表示业务表中的业务数据增加,该业务数据的增加指的是以行为单位增加业务数据,即新增一个业务数据以及其相关属性。数据删除类型表示业务表中的业务数据被删除,该业务数据的删除指的是以行为单位删除业务数据,即删除某一业务数据对应的整行属性。数据修改类型表示业务表中的数据的某一个或多个属性被修改,需指出是,当业务数据的某一个或多个属性发生的改变、增加或删除等操作时,均属于本实施例的数据修改类型。
[0058]更新日志可以记录在预设的变更日志表中,每当业务表中的数据更新时,数据库触发器就在变更日志表中创建一条更新日志。
[0059]步骤102,触发搜索引擎根据更新日志更新索引数据。
[0060]其中,索引数据与更新的业务数据具有相同的唯一标识,搜索引擎用于搜索索引数据。具体地,可以由数据库更新装置触发搜索引擎根据更新日志更新索引数据。数据库触发器可以在业务表中的业务数据发生更新时,即创建更新日志的同时,就触发搜索引擎更新索引数据。当然,还可以是每隔预设时间,搜索引擎自行获取爬取更新日志并更新搜索数据,具体可以根据实际需要进行设定,在此不再赘述。
[0061]可选地,在步骤102之后,还可以包括:删除更新的业务数据对应的更新日志。当搜索引擎根据更新日志对索引数据进行更新之后,可以删除该条更新日志,以减少更新日志所占用的存储空间。该删除更新日志的操作可以在对索引数据进行更新之后立即执行,也可以每隔预设时间执行,具体可以根据实际需要进行操作。
[0062]根据本实施例的更新数据的方法,通过建立更新日志,并触发搜索引擎根据更新日志及时更新索引数据,能够尽量使搜索数据的属性与业务表中的业务数据的属性保持一致。此外,搜索引擎仅针对更新日志进行搜索数据的更新即可,无需爬取整个业务表中的全部数据,大大节省了更新数据的时间,提高了更新数据的效率。
[0063]实施例二
[0064]本实施例对实施例一的中的触发搜索引擎根据更新日志更新索引数据中的业务数据的步骤做进一步说明。
[0065]具体地,本实施例中,该触发搜索引擎根据更新日志更新索引数据的操作包括:
[0066]若是更新类型为数据增加类型,触发搜索引擎根据更新的业务数据的唯一标识业务表中获取增加的业务数据,并根据增加的业务数据生成索引、索引数据和索引数据的属性,以使搜索引擎根据索引搜索到索引数据,索引数据的属性与更新的业务数据的属性相同;
[0067]若是更新类型为数据删除类型,触发搜索引擎根据更新的业务数据的唯一标识删除索引数据;
[0068]若是更新类型为数据修改类型,触发搜索引擎根据更新的业务数据的唯一标识获取更新后的业务数据的各属性,并根据所获取到的业务数据的各属性更新索引数据的各属性,以使索引数据的各属性与所获取到的业务数据的各属性相同。
[0069]本实施例中,具体可以采用不同的符号来标识各更新类型,例如A表示数据增加类型,B表示数据删除类型,C表示数据修改类型,Key代表唯一标识。具体地,搜索引擎的爬虫根据业务数据Key爬取业务表中的业务数据,并将所爬取到的业务数据更新到索引数据中。
[0070]下面举出具体的实例说明更新数据的方法。本实施例中,业务表如表1所示,预设的变更日志表如表2所示,本实施例中变更日志表中已经存在更新日志。更新日志中还可以包括流水号,该流水号具体用于使搜索引擎的爬虫获知上一次爬取到的记录,以便下一次爬取的时候避免重复爬取,进而避免对搜索引擎的爬虫产生额外负担。
[0071]表1
[0072]
【权利要求】
1.一种更新数据的方法,其特征在于,包括: 当业务表中的业务数据更新时,创建更新日志,所述业务表包括各业务数据的唯一标识以及各业务数据的至少一个属性,所述更新日志包括更新的业务数据的唯一标识和更新类型; 触发搜索引擎根据所述更新日志更新索引数据,所述索引数据与所述更新的业务数据具有相同的唯一标识,所述搜索引擎用于搜索所述索引数据。
2.根据权利要求1所述的更新数据的方法,其特征在于,所述触发所述搜索引擎根据所述更新日志更新索引数据包括: 若是所述更新类型为数据增加类型,触发所述搜索引擎根据所述更新的业务数据的唯一标识从所述业务表中获取增加的业务数据,并根据所述增加的业务数据生成索引、所述索引数据和所述索引数据的属性,以使所述搜索引擎根据所述索引搜索到所述索引数据,所述索引数据的属性与所述更新的业务数据的属性相同; 若是所述更新类型为数据删除类型,触发所述搜索引擎根据所述更新的业务数据的唯一标识删除所述索引数据; 若是所述更新类型为数据修改类型,触发所述搜索引擎根据所述更新的业务数据的唯一标识获取更新后的业务数据的各属性,并根据所获取到的业务数据的各属性更新所述索引数据的各属性,以使所述索引数据的各属性与所获取到的业务数据的各属性相同。
3.根据权利要求1或2所述的更新数据的方法,其特征在于,在触发所述搜索引擎根据所述更新日志更新索引数据之后,还包括: 删除所述更新的业务数据对应的更新日志。`
4.一种更新数据的方法,其特征在于,包括: 获取更新日志,所述更新日志是当业务表中的业务数据更新时生成的,所述业务表包括各业务数据的唯一标识以及各业务数据的至少一个属性,所述更新日志包括更新的业务数据的唯一标识和更新类型; 根据所述更新日志更新索引数据,所述索引数据是搜索引擎根据索引搜索到的数据且所述索引数据与所述更新的业务数据具有相同的唯一标识。
5.根据权利要求4所述的更新数据的方法,其特征在于,所述根据所述更新日志更新索引数据中的所述业务数据包括: 若是所述更新类型为数据增加类型,根据所述更新的业务数据的唯一标识从所述业务表中获取增加的业务数据,并根据所述增加业务数据创建索引、所述索引数据和索引数据的属性,以使所述搜索引擎根据所述索弓丨搜索到所述索引数据,所述索引数据的属性与所述更新的业务数据的属性相同; 若是所述更新类型为数据删除类型,根据所述更新的业务数据的唯一标识删除所述索引数据; 若是所述更新类型为数据修改类型,根据所述更新的业务数据的唯一标识获取更新后的业务数据的各属性,并根据所获取到的业务数据的更新所述索引数据的各属性,以使所述索引数据的各属性与所获取到的业务数据的各属性相同。
6.根据权利要求4或5所述的更新数据的方法,其特征在于,在根据所获取到的业务数据的更新所述索引数据的各属性之后,还包括:删除所述更新的业务数据对应的更新日志。
7.一种数据库触发器,其特征在于,包括: 创建单元,用于当业务表中的业务数据更新时,创建更新日志,所述业务表包括各业务数据的唯一标识以及各业务数据的至少一个属性,所述更新日志包括更新的业务数据的唯一标识和更新类型; 触发单元,用于触发搜索引擎根据所述更新日志更新索引数据,所述索引数据与所述更新的业务数据具有相同的唯一标识,所述搜索引擎用于搜索所述索引数据。
8.根据权利要求7所述的数据库触发器,其特征在于,所述触发单元具体用于: 若是所述更新类型为数据增加类型,触发所述搜索引擎根据所述更新的业务数据的唯一标识从所述业务表中获取增加的业务数据,并根据所述增加的业务数据生成索弓1、所述索引数据和所述索引数据的属性,以使所述搜索引擎根据所述索引搜索到所述索引数据,所述索引数据的属性与所述更新的业务数据的属性相同; 若是所述更新类型为数据删除类型,触发所述搜索引擎根据所述更新的业务数据的唯一标识删除所述索引数据; 若是所述更新类型为数据修改类型,触发所述搜索引擎根据所述更新的业务数据的唯一标识获取更新后的业务数据的各属性,并根据所获取到的业务数据的各属性更新所述索引数据的各属性,以使所述索引数据的各属性与所获取到的业务数据的各属性相同。
9.根据权利要求7或8所述的数据库触发器,其特征在于,还包括: 第一删除单元,用于删除`所述更新的业务数据对应的更新日志。
10.一种搜索引擎,其特征在于,包括: 获取单元,用于获取更新日志,所述更新日志是当业务表中的业务数据更新时生成的,所述业务表包括各业务数据的唯一标识以及各业务数据的至少一个属性,所述更新日志包括更新的业务数据的唯一标识和更新类型; 更新单元,用于根据所述更新日志更新索引数据,所述索引数据是搜索引擎根据索引搜索到的数据且所述索引数据与所述更新的业务数据具有相同的唯一标识。
11.根据权利要求10所述的搜索引擎,其特征在于,所述更新单元具体用于: 若是所述更新类型为数据增加类型,根据所述更新的业务数据的唯一标识从所述业务表中获取增加的业务数据,并根据所述增加业务数据创建索引、所述索引数据和索引数据的属性,以使所述搜索引擎根据所述索引搜索到所述索引数据,所述索引数据的属性与所述更新的业务数据的属性相同; 若是所述更新类型为数据删除类型,根据所述更新的业务数据的唯一标识删除所述索引数据; 若是所述更新类型为数据修改类型,根据所述更新的业务数据的唯一标识获取更新后的业务数据的各属性,并根据所获取到的业务数据的更新所述索引数据的各属性,以使所述索引数据的各属性与所获取到的业务数据的各属性相同。
12.根据权利要求10或11所述的搜索引擎,其特征在于,还包括: 第二删除单元,用于删除所述更新的业务数据对应的更新日志。
【文档编号】G06F17/30GK103559301SQ201310567675
【公开日】2014年2月5日 申请日期:2013年11月14日 优先权日:2013年11月14日
【发明者】赵卓真 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1