具体实施方式
为了使本技术邻域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本邻域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
下面结合附图对本申请所述的索引数据处理方法进行详细的说明。图1是本申请所述一种索引数据处理方法一种实施例的方法流程图。虽然本申请提供了如下述实施例或流程图所述的方法操作步骤,但基于常规处理手段或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑性上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例所提供的执行顺序。所述的方法的在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
具体的本申请提供的一种索引数据处理方法的一种实施例如图1所示,所述方法可以包括:
S1:获取业务数据。
所述的获取业务数据可以包括通过使用拦截器或者过滤器等获取业务请求方的业务数据。在数据库中的数据出变更后,可以由维护人员或者维护人员通过装置提供的维护信息输入端口发送对索引数据进行维护、更新的业务数据。所述的索引通常可以为建立的一个或者多个字段指向某一唯一标识的映射关系。在业务查询时,可以在本实施例中,可以通过拦截器或者过滤器等拦截获取所述业务数据,例如可以通过spring拦截器,或者Java的Proxy代理机制实现拦截获取业务数据。
所述的业务数据通常可以对应相应的业务类型。例如对包括用户ID、用户名称、电话号码、电子邮箱等用户的基本属性信息的业务数据对应的业务类型可以为基本信息。对包括工作城市、职位、收入、工龄等用户工作相关信息的数据对应的业务类型可以为工作信息,等等。当然,一般的,所述的业务数据的业务类型与需要进行修改的数据的业务类型可以为相同的。
当然,在不同的语言或者具体的数据库类型中,所述的业务数据的数据形式、格式等可以不同。本申请中提供的索引数据处理方法可以适应于不同的编程语言或者不同的数据库中。
所述的业务数据中可以包括需要对索引数据进行更新的操作请求。所述的业务操作请求可以包括,例如在添加业务数据的索引数据,建立实现该业务数据相应检索业务的索引信息。具体的例如,数据库中新增一条用户信息MSG_user1,则所述业务数据中可以包括添加索引数据的操作请求。
一般的,所述业务数据中还可以包括其他与该业务数据相关的信息。例如用户信息MSG_user1的业务数据中除可以包括用户名称、电话号码等,通常还可以包括设置在用户信息MSG_user1中的用户唯一标识。这样,在后期索引数据处理时,可以建立相应索引数据到所述用户唯一标识的索引。
拦截、获取业务数据。所述业务数据可以包括对索引数据的操作请求,可以对应相应的数据类型。
S2:查询与所述业务数据的业务类型相对应的索引配置信息。
获取所述业务数据后,可以查询所述与所业务数据相对应的业务类型,然后可以获取与该业务类型相对应的索引配置信息。所述的索引配置信息通常可以为对某个类型的数据设置的哪些字段为索引关键词的信息。例如对应用户信息类的数据,可以预先设置将用户的用户名称name、电话号码mobile、电子邮箱email设置为索引字段。当然,所述的配置信息可以根据需求进行相应的修改设置,例如可以增加新的例如年龄age为索引字段,设置在所述配置信息中。
在本实施例所述的索引数据处理方法中,一般的不同业务类型的业务数据可以对应不同的索引配置信息。如对于商品的业务数据,为其设置的索引配置信息可以为商品名称good_name、价格good_price、网店地址good_link等。
对于不同的业务数据,本实施例所述方法可以根据所述业务数据的业务类型查询获取到与所述业务类型相对应的索引配置信息。
S3:基于所述索引配置信息,根据所述业务数据的操作请求设置所述业务数据的索引数据。
所述的索引配置信息中设置了所述业务数据对应的业务类型的索引字段。在获取用户或者用户通过输入端口发送的业务数据后,可以获取实现该业务相关的配置信息。例如对应用户信息类的一条业务数据MSG_user1,可以得知当前设置的对用户信息进行索引的配置信息为采用“name”、“mobile”字段进行索引。
然后,可以根据所述业务数据的操作请求在所述索引配置信息限定的索引字段中设置该业务数据的索引数据。如上述业务数据MSG_user1的应用场景中,用户名称为张三,联系电话号码为13888888888所述的业务数据的操作请求为增加用户user1的索引数据。根据该业务类型的索引配置信息可以得知,需要对该业务数据建立用户名称、电话号码两个维度到用户唯一标识的索引。当然,所述业务数据的操作请求也可以为其他的对索引数据进行操作的请求。例如,在本申请的另一种实施例中,所述的根据所述业务数据的操作请求设置所述业务数据的索引数据可以包括:
S301:所述业务数据的操作请求为删除操作时,删除所述业务数据请求删除的索引数据。
具体的,例如数据库中删除了用户user2的用户数据,可以发送请求删除用户user2索引数据的业务数据信息MSG_user2。根据所述业务数据的数据类型可以获取用户信息类型数据索引配置信息。从所述业务数据中也可以获取得到业务数据中用户user2的用户唯一标识。然后可以根据本次业务操作请求为删除操作删除该业务数据MSG_user2的用户唯一标识所指向的在所述索引配置信息下的索引数据。例如删除用户信息的索引配置信息设置的索引字段“name”和“mobile”,用户唯一标识为user2ID,此时可以根据用户唯一标识user2ID删除业务数据MSG_user2的索引数据“name”中的“user2”、“mobile”中的“13999999999”。
这样,可以在数据库删除数据等变动时,通过本申请方法可以快速、及时的实现对索引数据相应的删除修改。在其他的实施例中,所述的业务数据的操作请求也可以为对索引数据进行修改或者添加新的业务数据的索引数据等。
图2是本申请所述索引数据处理方法另一种实施例的方法流程示意图。在本申请的另一种实施例中,所述的业务数据的操作请求为添加操作时,还可以判断当前的索引数据中是否已经存在需要添加的业务数据的索引信息。在此情况下,如果所述当前索引数据中已经包括业务数据中的索引信息,则可以更新业务所述的索引数据。具体的,本申请所述的一种索引数据处理方法中,所述根据所述业务数据的操作请求设置所述业务数据的索引数据可以包括:
S302:所述业务数据的操作请求为添加操作时,判断所述业务数据当前的索引数据中是否存在所述业务数据中的索引信息;
在所述判断结果为是时,将所述业务数据当前的索引数据更新为所述业务数据中的索引信息。
具体的应用场景中,如业务数据MSG_user3中包括添加用户user3的索引数据的操作请求。所述的业务数据中包括了用户名称user3、电子邮箱user3@xxx.com、电话号码18666666666、用户唯一标识user3ID等用户信息。在获取该业务数据MSG_user3后可以获取相应的索引配置信息,从所述MSG_user3的配置信息中可以获知设置的该业务类型的索引字段为“email”、“mobile”。进一步的可以从所述业务数据MSG_user3中获取用户user3的用户唯一标识。然后可以查询用户user3当前的索引数据,可以判断出当前用户user3的索引数据中已经设置了用户user3的email为“user33@xx.com”和mobile为“13777777777”。此时,可以将用户user3当前的索引数据email的“user33@xx.com”和mobile的“13777777777”更新为业务数据MSG_user3中的索引信息“user3@xxx.com”和“18666666666”。这样,可以在数据库数据发送更新等变动时,通过本申请方法可以快速、及时的实现对索引数据相应的修改。
当然,上述实施例中,如果所述判断所述业务数据当前的索引数据中不存在所述业务数据中的索引信息时,可以在索引配置信息中设置的索引字段下创建该业务数据的索引数据。具体的可以根据业务数据中的索引信息来创建该业务数据的索引数据。图3是本申请所述索引数据处理方法另一种实施例的方法流程示意图。如图3所示,上述所述包括步骤S302的实施例中:
S303:在所述判断结果为否时,创建所述业务数据中索引信息的索引数据。
本申请的一种应用场景中,定同一用户可以同时使用同一个索引关键词的多个信息,例如用户的多个电话号码、多个电子邮箱等均可以作为新的索引数据。此时,可以不需要判断数据库是否已经存在相同索引关键词的过程,可以直接将所述业务数据中的索引信息添加到数据库中作为信息的索引数据。因此,本申请的另一种实施例中,所述根据所述业务数据的操作请求设置所述业务数据的索引数据可以包括:
S4:所述业务数据的操作请求为添加操作时,添加所述业务数据请求添加的索引数据。
需要说明的是,本申请实施例中所述的添加、删除、更新等索引数据的操作,一般的可以包括响应的添加、删除、更新等的索引数据的索引指针。例如,新建或者更新的索引数据中配置有指向该新建或者更新的索引数据相对应用户的用户唯一标识。
通过上述本申请提供的一种索引数据处理方法中各个实施例所述,本申请可以对数据查询,尤其针对实时性要求较高的精确数据查询服务,可以提供实时或者准实时的数据更新,及早的实现对索引数据的添加、修改、删除等更新操作,使得后续业务查询可以更加精确。采用本申请所述的索引数据处理方法,可以在数据库数据更新后,直接对索引数据进行相应的设置,例如添加、修改或者删除索引数据等,可以不需要人工的针对每个业务数据的索引代码进行编辑、添加等,可以快速、准确的完成索引数据的更新,提供数据处理效率。另外,需要说明的是,本申请提供的索引数据处理方法所实现的对索引数据的添加、删除、修改等操作,可以在不侵入业务的情况下完成。所谓不侵入业务即可以利用本申请所述的方法,可以不需要在业务使用方的业务逻辑代码中添加显式特定编码实现来实现索引数据更新,可以使业务使用方的代码整洁清楚,减少非业务逻辑相关的代码。同时使得对数据操作变更更加灵活,不需要显式的变更编码实现。
利用本申请提供的索引数据处理方法,可以实现更加及时、高效、方便的维护或者建立数据的索引数据。进一步的,可以根据本申请所述的索引数据处理方法建立的索引数据进行用户业务数据的查询。因此,本申请还提供一种数据查询方法。图4是本申请所述一种数据查询方法的方法流程示意图。如图4所示,具体的,所述方法可以包括:
S1’:获取业务查询请求,确定查询维度和所述查询维度的参数值;
S2’:将所述查询维度和所述参数值在索引数据中查询与所述查询维度相对应的主维度标识;
S3’:根据所述索引数据返回的主维度标识进行业务查询。
所述索引数据包括根据获取的业务数据的操作请求和与所述业务数据相对应的索引配置信息设置的所述业务数据的索引数据。
例如上述实施例中的“用户名称”、“电子邮箱”等可以为查询维度,“user3”、user3@xxx.com可以为与所述查询维度“用户名称”、“电子邮箱”相对应查询参数值。在用户数据库的应用场景中,同一用户不同维度的索引数据可以指向相同的用户唯一标识userID。所述用户唯一标识可以为本实施例中所述的主维度标识。然后可以根据索引数据反馈的主维度标识进行用户数据的业务查询。
基于本申请所述索引数据处理方法,本申请提供一种索引数据处理装置。图5是本申请所述一种索引数据处理装置的模块结构示意图。具体的,如图5所示,所述装置可以包括:
接收单元101,可以用于获取业务数据;
查询单元102,可以用于查询与所述业务数据的业务类型相对应的索引配置信息;
数据处理单元103,可以用于获取所述业务数据的操作请求,根据所述索引配置信息和所述操作请求设置所述业务数据的索引数据。
图6是本申请提供的所述数据处理单元103的一种实施例的模块结构示意图。如图6所示,所述数据处理单元103可以包括:
删除模块1031,可以用于在所述业务数据的操作请求为删除操作时,删除所述业务数据请求删除的索引数据;
第一添加处理模块1032,可以用于在所述业务数据的操作请求为添加操作时,判断所述业务数据当前的索引数据中是否存在所述业务数据中的索引信息;还可以用于在所述判断结果为是时,将所述业务数据当前的索引数据更新为所述业务数据中的索引信息。
当然,所述数据处理单元103还可以包括:
第二添加处理模块1033,可以用于在所述第一添加处理模块的判断结果为是时,将所述业务数据当前的索引数据更新为所述业务数据中的索引信息。
本申请提供的所述数据处理单元103的另一种实施例中,所述数据处理单元103可以在业务数据的操作请求为添加时直接添加索引数据。具体的,所述数据处理单元可以包括:
第三添加处理单元,可以用于在所述业务数据的操作请求为添加操作时,添加所述业务数据请求添加的索引数据。
本申请提供的索引数据处理装置,可对数据查询尤其针对实时性要求较高的精确数据查询服务,提供实时或者准实时的数据更新,及早的实现对索引数据的添加、修改、删除等更新操作,使得后续业务查询可以更加精确。采用本申请所述的索引数据处理装置,可以在数据库数据更新后,直接对索引数据进行相应的设置,例如添加、修改或者删除索引数据等,可以不需要人工的针对每个业务数据的索引代码进行编辑、添加等,可以快速、准确的完成索引数据的更新,提高数据处理效率。
利用本申请所述的索引数据处理装置可以完成索引数据库的建立、维护、更新等。可以利用所述索引数据进行用户业务查询。本申请还提供一种包括本申请至少一个实施例的数据查询装置。图7是本申请所述数据查询装置的模块结构示意图,如图7所示,所述数据查询装置具体的可以包括:
输入单元201,可以用于获取业务查询请求,确定查询维度和所述查询维度的参数值;
索引数据库202,可以用于存储根据获取的业务数据的操作请求和与所述业务数据相对应的索引配置信息设置的所述业务数据的索引数据;
主维度标识查询单元203,可以用于将所述查询维度和所述参数值在索引数据中查询与所述业务查询请求相对应的主维度标识;
业务查询单元,可以用于根据所述索引数据返回的主维度标识进行业务查询。
尽管本申请内容中提到数据库数据处理、数据拦截、Java、spring等之类的数据处理、编程语言等的描述,但是,本申请并不局限于必须是完全标准或者所提及的方法的数据处理的情况。本申请中各个实施例所涉及的上述描述仅是本申请中的一些实施例中的应用,在某些标准、方法的基础上略加修改后的处理方法也可以实行上述本申请各实施例的方案。当然,在符合本申请上述各实施例的中所述的处理方法步骤的其他无创造性的变形,仍然可以实现相同的申请,在此不再赘述。
虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
上述实施例阐明的单元或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现。
本邻域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施方式的描述可知,本邻域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
虽然通过实施例描绘了本申请,本邻域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。