一种索引建立方法、装置及计算机可读存储介质与流程

文档序号:18832503发布日期:2019-10-09 03:55阅读:129来源:国知局
一种索引建立方法、装置及计算机可读存储介质与流程
本发明实施例涉及计算机
技术领域
,尤指一种索引建立方法、装置及计算机可读存储介质。
背景技术
:elasticsearch(es)是目前使用较为广泛的一种高扩展性和高可用性的实时性分析的全文检索工具,在数据量巨大的实际应用中时,es就要按某种自定义规则(比如按月分等)进行索引,而建立索引往往会利用动态模板(dynamic_templates)。相关技术中,动态模板是根据字段名称建立的,动态模板中设置有映射(mapping)用来指定具体的映射信息,设置有路径匹配(path_match)参数用来规定对于什么字段需要使用该模板,path_match参数用于匹配字段的完整路径和名称,要想准确生成映射,通常相似的字段名称使用同一规则进行模糊匹配,不同的字段名称需要一一指出具体字段名称进行匹配。然而,由于这种索引建立方法基于的动态模板是根据字段名称建立的,因此当新建一个索引时,需要针对所要建立的索引设置专门的动态模板,因此使得索引建立效率十分低下。技术实现要素:为了解决上述技术问题,本发明实施例提供了一种索引建立方法、装置及计算机可读存储介质,能够避免设置多个动态模板的麻烦,提高索引建立的效率。为了达到本发明实施例的目的,本发明实施例提供了一种索引建立方法,包括:服务器获取用于建立索引的字段的字段名称和字段类型;所述服务器根据预先建立的字段类型和字段格式的对应关系获取与获得的字段类型对应的字段格式;所述服务器根据获得的字段格式处理获得的字段名称,得到经过处理的字段名称;所述服务器在动态模板中获取与所述经过处理的字段名称匹配的字段格式,并获取与所述匹配的字段格式对应的映射信息;其中,所述动态模板是根据若干种字段格式与对应的映射信息预先设置的,所述若干种字段格式对应于若干种字段类型;所述服务器根据获得的映射信息和字段名称建立索引。所述服务器在动态模板中获取与经过处理的字段名称的匹配的字段格式,包括:所述服务器依次判断所述动态模板中的每一种字段格式是否是处理获得的字段名称的字段格式;如果所述动态模板中一种字段格式是处理获得的字段名称的字段格式,获取该字段格式作为所述与经过处理的字段名称的匹配的字段格式。所述字段格式包括:字段前缀和字段后缀。当所述字段格式为字段前缀时,所述服务器根据获得的字段格式处理获得的字段名称,包括:所述服务器将获得的字段前缀添加至获得的字段名称前;所述服务器依次判断动态模板中的每一种字段格式是否是处理获得的字段名称的字段格式,包括:所述服务器依次判断所述动态模板中的每一种字段前缀是否是所述经过处理的字段名称的字段前缀;所述如果动态模板中一种字段格式是处理经过处理的字段名称的字段格式,获取该字段格式作为与经过处理的字段名称的匹配的字段格式,包括:如果所述动态模板中一种字段前缀包含在所述经过处理的字段名称前,获取该字段前缀作为所述与经过处理的字段名称的匹配的字段前缀。所述若干种字段类型包括:若干种字段的数据类型,所述若干种字段的数据类型包括:text、keyword、long、double、date、boolean和nested。本发明实施例还提供了一种服务器,包括:获取模块,用于获取用于建立索引的字段的字段名称和字段类型;所述获取模块,还用于根据预先建立的字段类型和字段格式的对应关系获取与获得的字段类型对应的字段格式;处理模块,用于根据获得的字段格式处理获得的字段名称,得到经过处理的字段名称;所述获取模块,还用于在动态模板中获取与所述经过处理的字段名称匹配的字段格式,并获取与所述匹配的字段格式对应的映射信息;其中,所述动态模板是根据若干种字段格式与对应的映射信息预先设置的,所述若干种字段格式对应于若干种字段类型;所述处理模块,还用于根据获得的映射信息和字段名称建立索引。所述获取模块具体用于:依次判断所述动态模板中的每一种字段格式是否是处理获得的字段名称的字段格式;如果所述动态模板中一种字段格式是处理获得的字段名称的字段格式,获取该字段格式作为所述与经过处理的字段名称的匹配的字段格式。所述字段格式包括:字段前缀和字段后缀。本发明实施例还提供了一种索引建立装置,包括:处理器和存储器,其中,存储器中存储有以下可被处理器执行的命令:获取用于建立索引的字段的字段名称和字段类型;根据预先建立的字段类型和字段格式的对应关系获取与获得的字段类型对应的字段格式;根据获得的字段格式处理获得的字段名称,得到经过处理的字段名称;在动态模板中获取与所述经过处理的字段名称匹配的字段格式,并获取与所述匹配的字段格式对应的映射信息;其中,所述动态模板是根据若干种字段格式与对应的映射信息预先设置的,所述若干种字段格式对应于若干种字段类型;根据获得的映射信息和字段名称建立索引。本发明实施例还提供了一种计算机可读存储介质,所述存储介质上存储有计算机可执行命令,所述计算机可执行命令用于执行以下步骤:获取用于建立索引的字段的字段名称和字段类型;根据预先建立的字段类型和字段格式的对应关系获取与获得的字段类型对应的字段格式;根据获得的字段格式处理获得的字段名称,得到经过处理的字段名称;在动态模板中获取与所述经过处理的字段名称匹配的字段格式,并获取与所述匹配的字段格式对应的映射信息;其中,所述动态模板是根据若干种字段格式与对应的映射信息预先设置的,所述若干种字段格式对应于若干种字段类型;根据获得的映射信息和字段名称建立索引。由于服务器根据用于建立索引的字段的字段类型所对应的字段格式处理了字段名称,而动态模板是根据若干种字段格式与对应的映射信息预先设置的,若干种字段格式又对应于若干种字段类型,因此使得任何字段名称都能够从动态模板中匹配到相应的映射信息以进行索引建立,从而使得一个动态模板便可适用于任何索引的建立,省去了设置多个动态模板的麻烦,也提高了索引建立的效率。本发明实施例的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例而了解。本发明实施例的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。附图说明附图用来提供对本发明实施例技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明实施例的技术方案,并不构成对本发明实施例技术方案的限制。图1为本发明实施例提供的一种索引建立方法的流程示意图;图2为本发明实施例的一种服务器的结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。相关技术中,动态模板示例如下:这种索引建立方法,对于不同索引需要一一设置不同模板(template),每个模板,若想精准生成映射(mapping),需要一一指定所有已知字段,操作繁琐,可维护性差。若有新字段需要添加,需要更新模板或者利用elasticsearch的自动类型匹配功能直接写入,但两者均有缺点:更新模板的缺点:如果是多索引,更新后的模板只对新索引生效,旧索引不生效,需要手动更新映射,不智能,效率低;直接写入的缺点:elasticsearch的自动类型匹配,不一定精准,严重依赖我们第一条写入的数据的字段类型,很有可能匹配出不是我们想要的类型来。本发明实施例提供一种索引建立方法,如图1所示,该方法包括:步骤101、服务器获取用于建立索引的字段的字段名称和字段类型。步骤102、服务器根据预先建立的字段类型和字段格式的对应关系获取与获得的字段类型对应的字段格式。步骤103、服务器根据获得的字段格式处理获得的字段名称,得到经过处理的字段名称。步骤104、服务器在动态模板中获取与经过处理的字段名称匹配的字段格式,并获取与匹配的字段格式对应的映射信息。其中,动态模板是根据若干种字段格式与对应的映射信息预先设置的,若干种字段格式对应于若干种字段类型。步骤105、服务器根据获得的映射信息和字段名称建立索引。在一种示例性实施例中,服务器在动态模板中获取与经过处理的字段名称的匹配的字段格式,包括:步骤104a、服务器依次判断动态模板中的每一种字段格式是否是处理获得的字段名称的字段格式。步骤104b、如果动态模板中一种字段格式是处理获得的字段名称的字段格式,获取该字段格式作为与经过处理的字段名称的匹配的字段格式。在一种示例性实施例中,字段格式包括:字段前缀和字段后缀。在一种示例性实施例中,当字段格式为字段前缀时,服务器根据获得的字段格式处理获得的字段名称,包括:步骤103a、服务器将获得的字段前缀添加至获得的字段名称前。服务器依次判断动态模板中的每一种字段格式是否是处理获得的字段名称的字段格式,包括:步骤104a1、服务器依次判断动态模板中的每一种字段前缀是否是经过处理的字段名称的字段前缀。如果动态模板中一种字段格式是处理经过处理的字段名称的字段格式,获取该字段格式作为与经过处理的字段名称的匹配的字段格式,包括:步骤104b1、如果动态模板中一种字段前缀包含在经过处理的字段名称前,获取该字段前缀作为与经过处理的字段名称的匹配的字段前缀。在一种示例性实施例中,若干种字段类型包括:若干种字段的数据类型,若干种字段的数据类型包括:text、keyword、long、double、date、boolean和nested。本发明实施例提供的索引建立方法,由于服务器根据用于建立索引的字段的字段类型所对应的字段格式处理了字段名称,而动态模板是根据若干种字段格式与对应的映射信息预先设置的,若干种字段格式又对应于若干种字段类型,因此使得任何字段名称都能够从动态模板中匹配到相应的映射信息以进行索引建立,从而使得一个动态模板便可适用于任何索引的建立,省去了设置多个动态模板的麻烦,也提高了索引建立的效率。本发明实施例还提供一种索引建立方法,包括以下步骤:步骤1、配置动态模板(dynamic_templates),设置一个mapping,利用path_match自定义规则,将elasticsearch的七大核心数据类型:text、keyword、long、double、date、boolean当做字段前缀(字段类型与前缀的对应关系如表1所示),并利用path_match的匹配完整路径的功能,将模糊匹配规则设定为包含,即*text_*,即可匹配基本格式和匹配嵌套格式内字段,从而实现覆盖所有字段。字段类型前缀texttext_keywordkw_longlong_doubledouble_datedate_booleanbool_nestednested_表1步骤2、数据写入时,将该字段的数据类型对应的前缀添加到字段名称前,直接写入,即可自动匹配生成映射。建立动态模板的示例如下:解决现有技术多模板可维护性差,模板规则操作复杂的问题本发明实施例利用elasticsearch核心数据类型前缀匹配规则,只需要设置一个简单的通用模板,基本可以完全匹配所有索引,解决了维护多个模板的问题,并且解决了添加新字段,需要反复修改配置的问题或者数据类型匹配不正确的问题,当需要添加新字段时,只需要直接写入即可,不需要修改任何配置,并且能精准的保证数据类型的准确性。本发明实施例提供一种服务器,如图2所示,该服务器2包括:获取模块21,用于获取用于建立索引的字段的字段名称和字段类型。获取模块21,还用于根据预先建立的字段类型和字段格式的对应关系获取与获得的字段类型对应的字段格式。处理模块22,用于根据获得的字段格式处理获得的字段名称,得到经过处理的字段名称。获取模块21,还用于在动态模板中获取与经过处理的字段名称匹配的字段格式,并获取与匹配的字段格式对应的映射信息;其中,动态模板是根据若干种字段格式与对应的映射信息预先设置的,若干种字段格式对应于若干种字段类型。处理模块22,还用于根据得的映射信息和字段名称建立索引。在一种示例性实施例中,获取模块21具体用于:依次判断动态模板中的每一种字段格式是否是处理获得的字段名称的字段格式。如果动态模板中一种字段格式是处理获得的字段名称的字段格式,获取该字段格式作为与经过处理的字段名称的匹配的字段格式。在一种示例性实施例中,字段格式包括:字段前缀和字段后缀。在一种示例性实施例中,处理模块22还用于将获得的字段前缀添加至获得的字段名称前。获取模块21具体用于:依次判断动态模板中的每一种字段前缀是否是经过处理的字段名称的字段前缀。如果动态模板中一种字段前缀包含在经过处理的字段名称前,获取该字段前缀作为与经过处理的字段名称的匹配的字段前缀。在一种示例性实施例中,若干种字段类型包括:若干种字段的数据类型,若干种字段的数据类型包括:text、keyword、long、double、date、boolean和nested。本发明实施例提供的服务器,由于根据用于建立索引的字段的字段类型所对应的字段格式处理了字段名称,而动态模板是根据若干种字段格式与对应的映射信息预先设置的,若干种字段格式又对应于若干种字段类型,因此使得任何字段名称都能够从动态模板中匹配到相应的映射信息以进行索引建立,从而使得一个动态模板便可适用于任何索引的建立,省去了设置多个动态模板的麻烦,也提高了索引建立的效率。在实际应用中,所述获取模块21和处理模块22位于服务器中的中央处理器(centralprocessingunit,cpu)、微处理器(microprocessorunit,mpu)、数字信号处理器(digitalsignalprocessor,dsp)或现场可编程门阵列(fieldprogrammablegatearray,fpga)等实现。本发明实施例还提供一种索引建立装置,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,处理器执行计算机程序时实现上述实施例中任意一种索引建立方法。本发明实施例还提供一种计算机可读存储介质,存储介质上存储有计算机可执行命令,计算机可执行命令用于执行如上述实施例中任意一种索引建立方法。虽然本发明实施例所揭露的实施方式如上,但所述的内容仅为便于理解本发明实施例而采用的实施方式,并非用以限定本发明实施例。任何本发明实施例所属领域内的技术人员,在不脱离本发明实施例所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明实施例的专利保护范围,仍须以所附的权利要求书所界定的范围为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1