一种应用于搜索服务的全量同步方法技术

技术编号:22166623 阅读:30 留言:0更新日期:2019-09-21 10:27
本发明专利技术公开了一种应用于搜索服务的全量同步方法。该方法能够将应用系统中的海量不同数据源类型、不同中心库下的多表关联的复杂业务数据做拉平处理,以高效的速度全量同步至搜索引擎,具有很好的应用前景。

A Full Synchronization Method for Search Services

【技术实现步骤摘要】
一种应用于搜索服务的全量同步方法
本专利技术涉及计算机软件
,尤其涉及一种应用于搜索服务的全量同步方法。
技术介绍
随着信息技术的迅速发展,各应用系统的数据量与日俱增。在一些大型应用系统中,常常是大数据分布式存储方式,因此,在对用户所需的信息进行查询时,通常需要对不同中心库下的不同数据库做表关联查询,且检索及筛选条件比较复杂,从而导致数据库查询性能较差、响应超时等问题。因此,如何从海量数据中对用户所需的信息进行快速查询和分词检索,是各应用系统在建设过程中迫切需要解决的问题。搜索引擎技术由于可以进行数据的实时查询和分词检索,无疑成为解决上述问题的优选方案。但是,现有的数据传输服务只能实现将应用系统的数据库中的单表数据进行全部提取并同步至搜索引擎,不能解决多表关联同步至搜索引擎查询的复杂业务场景。现有的数据传输服务只能实现对应用系统的数据库中的单表数据进行全部提取并同步至搜索引擎,并不能实现对多表关联的复杂索引结构进行数据的快速同步传输,具体说明如下:单表数据传输是指将数据库中的单一的一个表作为源端,将搜索引擎作为目标端,把源端的一个表中的所有数据进行提取传输至搜索引擎,然后以搜索引擎作为应用系统的数据源进行数据的查询检索。但单表数据同步至搜索引擎,常常不能满足业务需求。例如,用户想对某电商系统中的订单信息通过搜索引擎进行分词检索,此时,用户在搜索引擎中建立一个订单索引,通过现有的数据传输服务,将数据库中的订单表数据进行全部提取并同步至搜索引擎的订单索引中,随后,用户便可通过搜索引擎进行订单数据的查询检索。但是,用户在进行订单查询时,通常也需要将该订单下的商品、物流等相关信息查询出来。由于在搜索引擎中不同索引之间不能做关联查询,因此,用户在将订单数据、该订单下的商品数据和物流数据同步至搜索引擎前,需要对上述数据做关联处理,即,用户以订单表作为主表,以商品表和物流表作为附表,通过关联键将主表中的数据和附表中的数据进行关联,形成包含订单、商品、物流等完善的JSON格式的数据信息,然后将该数据信息同步至搜索引擎的订单索引中。如此,用户在搜索引擎的订单索引中查询检索订单信息时,也会将订单的商品、物流等信息一并查出。由此可见,单表数据传输不能解决复杂的业务场景,即便现有的一些数据传输服务做了多表关联传输,也只能实现简单关联和小数据量的传输。因此,如何将应用系统中的海量不同数据源类型、不同中心库下的多表关联的复杂业务数据做拉平处理,以高效的速度全量同步至搜索引擎,成为业界急需解决的技术难题。为了解决上述技术问题,本专利技术提供了一种应用于搜索服务的全量同步方法。
技术实现思路
本专利技术所要解决的技术问题是:现有技术中不能将应用系统中的海量不同数据源类型、不同中心库下的多表关联的复杂业务数据做拉平处理,以高效的速度全量同步至搜索引擎。为了解决上述技术问题,本专利技术提供了一种应用于搜索服务的全量同步方法,包括:获取需要进行全量同步操作的搜索引擎索引名称;根据所述搜索引擎索引名称,查询与所述搜索引擎索引名称对应的索引配置信息和数据源配置信息,其中,与所述搜索引擎索引名称对应的索引配置信息包括:利用所述搜索引擎索引名称配置的多个表的数目、所述多个表中的每个表的名称、所述多个表中的每两个表之间的关联关系和关联键、所述多个表中的每个表配置的字段、以及与所述多个表中的每个表对应的数据源配置名称;通过JDBC与数据库进行连接,并查询所述多个表中的每个表在数据库中存储的数据条数;根据所述多个表中的每两个表之间的关联关系和关联键,为所述多个表创建表树形结构,其中,所述表树形结构包括多个层级,第一层级上具有一个表,除第一层级之外的其他层级上具有至少一个表;针对所述表树形结构的每个层级,从最低层级开始到第二层级为止,依次执行以下操作:利用预设规则,依次将与各层级上的表及其上游表对应的索引配置信息和数据源配置信息、该上游表的名称、以及所述表树形结构中的所有表之间的关联关系存储到堆栈中;按照存储顺序,依次从堆栈中取出与各层级上的表及其上游表对应的索引配置信息和数据源配置信息,并对各层级上的表及其上游表在数据库中存储的数据进行处理,形成各层级上的表与各层级上的表的上游表的关联表,其中,所述关联表包括:各层级上的表的上游表配置的所有字段,以及分别对各层级上的各表配置的所有字段进行格式转换后形成的JSON格式的数据;将通过上述操作形成的第一层级上的表与第二层级上的表的关联表中的数据转换为JSON格式的数据,并调用搜索引擎的接口将所述JSON格式的数据写入到搜索引擎中,从而实现了从数据库到搜索引擎的全量同步。在本专利技术一优选实施例中,根据所述搜索引擎索引名称,查询与所述搜索引擎索引名称对应的索引配置信息和数据源配置信息,包括:根据所述搜索引擎索引名称,查询与所述搜索引擎索引名称对应的索引配置信息;根据与所述搜索引擎索引名称对应的索引配置信息,查询与所述多个表中的每个表对应的数据源配置信息。在本专利技术一优选实施例中,根据所述搜索引擎索引名称,查询与所述搜索引擎索引名称对应的索引配置信息,包括:根据所述搜索引擎索引名称,通过调用搜索引擎的配置库的查询接口,从所述配置库的索引配置表中查询与所述搜索引擎索引名称对应的索引配置信息。在本专利技术一优选实施例中,根据与所述搜索引擎索引名称对应的索引配置信息,查询与所述多个表中的每个表对应的数据源配置信息,包括:根据与所述多个表中的每个表对应的数据源配置名称,通过调用搜索引擎的配置库的查询接口,从所述配置库的数据源配置表中查询与所述多个表中的每个表对应的数据源配置信息。在本专利技术一优选实施例中,与所述多个表中的每个表对应的数据源配置信息包括:与所述多个表中的每个表对应的数据源所属的数据库的类型、地址、端口、库名、用户名、以及密码。在本专利技术一优选实施例中,与所述多个表中的每个表对应的数据源所属的数据库的类型包括:SQLServer数据库、MYSQL数据库和ORACLE数据库。在本专利技术一优选实施例中,在查询所述多个表中的每个表在数据库中存储的数据条数之后,且在根据所述多个表中的每两个表之间的关联关系和关联键,为所述多个表创建表树形结构之前,还包括:判断所述多个表中的每个表在数据库中存储的数据条数是否为0;若该表在数据库中存储的数据条数为0,则从与所述搜索引擎索引名称对应的索引配置信息中去除该表。在本专利技术一优选实施例中,利用预设规则,依次将与各层级上的表及其上游表对应的索引配置信息和数据源配置信息、该上游表的名称、以及所述表树形结构中的所有表之间的关联关系存储到堆栈中,包括:针对所述表树形结构的每个层级,从最低层级开始到第二层级为止,均执行以下操作:依次将与各层级上的表对应的索引配置信息和数据源配置信息、以及与各层级上的表的上游表对应的索引配置信息和数据源配置信息作为一个单元放入到堆栈中,其中,与各层级上的表对应的索引配置信息包括:各层级上的表与各层级上的表的上游表之间的关联关系和关联键、各层级上的表配置的字段、以及与各层级上的表对应的数据源配置名称,与各层级上的表的上游表对应的索引配置信息包括:各层级上的表与各层级上的表的上游表之间的关联关系和关联键、各层级上的表的上游表配置的字段、以及与各层级上的表的上游表对应的数据源配置名本文档来自技高网
...

【技术保护点】
1.一种应用于搜索服务的全量同步方法,其特征在于,包括:获取需要进行全量同步操作的搜索引擎索引名称;根据所述搜索引擎索引名称,查询与所述搜索引擎索引名称对应的索引配置信息和数据源配置信息,其中,与所述搜索引擎索引名称对应的索引配置信息包括:利用所述搜索引擎索引名称配置的多个表的数目、所述多个表中的每个表的名称、所述多个表中的每两个表之间的关联关系和关联键、所述多个表中的每个表配置的字段、以及与所述多个表中的每个表对应的数据源配置名称;通过JDBC与数据库进行连接,并查询所述多个表中的每个表在数据库中存储的数据条数;根据所述多个表中的每两个表之间的关联关系和关联键,为所述多个表创建表树形结构,其中,所述表树形结构包括多个层级,第一层级上具有一个表,除第一层级之外的其他层级上具有至少一个表;针对所述表树形结构的每个层级,从最低层级开始到第二层级为止,依次执行以下操作:利用预设规则,依次将与各层级上的表及其上游表对应的索引配置信息和数据源配置信息、该上游表的名称、以及所述表树形结构中的所有表之间的关联关系存储到堆栈中;按照存储顺序,依次从堆栈中取出与各层级上的表及其上游表对应的索引配置信息和数据源配置信息,并对各层级上的表及其上游表在数据库中存储的数据进行处理,形成各层级上的表与各层级上的表的上游表的关联表,其中,所述关联表包括:各层级上的表的上游表配置的所有字段,以及分别对各层级上的各表配置的所有字段进行格式转换后形成的JSON格式的数据;将通过上述操作形成的第一层级上的表与第二层级上的表的关联表中的数据转换为JSON格式的数据,并调用搜索引擎的接口将所述JSON格式的数据写入到搜索引擎中,从而实现了从数据库到搜索引擎的全量同步。...

【技术特征摘要】
1.一种应用于搜索服务的全量同步方法,其特征在于,包括:获取需要进行全量同步操作的搜索引擎索引名称;根据所述搜索引擎索引名称,查询与所述搜索引擎索引名称对应的索引配置信息和数据源配置信息,其中,与所述搜索引擎索引名称对应的索引配置信息包括:利用所述搜索引擎索引名称配置的多个表的数目、所述多个表中的每个表的名称、所述多个表中的每两个表之间的关联关系和关联键、所述多个表中的每个表配置的字段、以及与所述多个表中的每个表对应的数据源配置名称;通过JDBC与数据库进行连接,并查询所述多个表中的每个表在数据库中存储的数据条数;根据所述多个表中的每两个表之间的关联关系和关联键,为所述多个表创建表树形结构,其中,所述表树形结构包括多个层级,第一层级上具有一个表,除第一层级之外的其他层级上具有至少一个表;针对所述表树形结构的每个层级,从最低层级开始到第二层级为止,依次执行以下操作:利用预设规则,依次将与各层级上的表及其上游表对应的索引配置信息和数据源配置信息、该上游表的名称、以及所述表树形结构中的所有表之间的关联关系存储到堆栈中;按照存储顺序,依次从堆栈中取出与各层级上的表及其上游表对应的索引配置信息和数据源配置信息,并对各层级上的表及其上游表在数据库中存储的数据进行处理,形成各层级上的表与各层级上的表的上游表的关联表,其中,所述关联表包括:各层级上的表的上游表配置的所有字段,以及分别对各层级上的各表配置的所有字段进行格式转换后形成的JSON格式的数据;将通过上述操作形成的第一层级上的表与第二层级上的表的关联表中的数据转换为JSON格式的数据,并调用搜索引擎的接口将所述JSON格式的数据写入到搜索引擎中,从而实现了从数据库到搜索引擎的全量同步。2.根据权利要求1所述的应用于搜索服务的全量同步方法,其特征在于,根据所述搜索引擎索引名称,查询与所述搜索引擎索引名称对应的索引配置信息和数据源配置信息,包括:根据所述搜索引擎索引名称,查询与所述搜索引擎索引名称对应的索引配置信息;根据与所述搜索引擎索引名称对应的索引配置信息,查询与所述多个表中的每个表对应的数据源配置信息。3.根据权利要求2所述的应用于搜索服务的全量同步方法,其特征在于,根据所述搜索引擎索引名称,查询与所述搜索引擎索引名称对应的索引配置信息,包括:根据所述搜索引擎索引名称,通过调用搜索引擎的配置库的查询接口,从所述配置库的索引配置表中查询与所述搜索引擎索引名称对应的索引配置信息。4.根据权利要求2所述的应用于搜索服务的全量同步方法,其特征在于,根据与所述搜索引擎索引名称对应的索引配置信息,查询与所述多个表中的每个表对应的数据源配置信息,包括:根据与所述多个表中的每个表对应的数据源配置名称,通过调用搜索引擎的配置库的查询接口,从所述配置库的数据源配置表中查询与所述多个表中的每个表对应的数据源配置信息。5.根据权利要求4所述的应用于搜索服务的全量同步方法,其特征在于,与所述多个表中的每个表对应的数据源配置信息包括:与所述多个表中的每个表对应的数据源所属的数据库的类型、地址、端口、库名、用户名、以及密码。6.根据权利要求5所述的应用于搜索服务的全量同...

【专利技术属性】
技术研发人员:陈海龙王建新
申请(专利权)人:石化盈科信息技术有限责任公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1