基于模糊匹配的配置加载方法、装置及应用制造方法及图纸

技术编号:38825275 阅读:16 留言:0更新日期:2023-09-15 20:04
本发明专利技术公开了基于模糊匹配的配置加载方法、装置及应用,涉及计算机配置技术领域。所述方法包括:对于目标应用程序,获取待配置参数的键名链信息;解析待配置参数的键名链以得到各级键名域信息,根据各级键名域信息,使用预设的打分机对前述键名链进行打分,获取得分最高的配置作为前述键名链的匹配项;根据匹配项,基于目标应用程序的配置文件中的键值对信息获取前述匹配项对应的值后,将所述值作为前述键名链对应的值;其中,所述目标应用程序的配置文件为进行了配置数据简化的配置文件,键值对的键为支持模糊匹配的键名链。本发明专利技术使用模糊匹配的键,同时将相似键按照值尽可能模糊归纳,使得相同配置效果的配置项可以更少更简化。化。化。

【技术实现步骤摘要】
基于模糊匹配的配置加载方法、装置及应用


[0001]本专利技术涉及计算机配置
,尤其涉及一种基于模糊匹配的配置加载方法、装置及应用。

技术介绍

[0002]配置文件是工程中常用的初始化参数的配置方式,而配置文件的格式有很多种,不同的操作系统、编程语言通常会有不同的配置文件的格式,作为举例,比如:Windows较早的开发选择使用int格式的配置文件;java则选择使用properties格式的配置文件,properties属于文本文件类型,文件的内容是“键=值”的格式,可以用“#”作为注释;而一些通用的编程语言则选择使用轻量级的数据交换格式json(javascript object notation)格式的配置文件,json属于JS对象简谱,是基于欧洲计算机协会制定的JS规范ECMAScript的一个子集,其采用完全独立于编程语言的文本格式来存储和表示数据,数据在键值对中,格式为“key”:“value”,不支持注释。考虑到人工阅读和编辑的友好性,现有技术还提供了hocon(human

optimized config object notation,人性化配置对象表示法)格式的配置文件。hocon是json和properties的一个超集,旨在保证json格式的语义的同时使配置文件的阅读和编辑更方便。不同的配置文件格式有不同的用户友好性,对于功能的支持也有简单和复杂之分,选择配置文件格式时也通常会从多个方面去考量。但总体来说,配置文件格式没有数据库文件格式(如 SQLite)、文档文件格式、编程语言文件格式的需求那么复杂,满足严谨(而不严苛)、支持必要的数据类型和嵌套、最好便于阅读和手动编辑等需求即可。
[0003]随着一个系统功能模块增加,配置文件的内容也越来越多,配置项信息越来越复杂,出现了大量相似键值,如何减少相似且臃肿的配置项信息也是本领域技术人员在选择配置文件格式不能忽略的问题。据此,基于简化配置文件的配置项的角度,现有技术针对运用广泛的配置文件格式json、properties提出了一些改进格式,比如当前较受欢迎的yaml、toml格式。其中,yaml(yet another markup language)是一种数据序列化语言,其将 json中的括号结构去掉了,只保留缩进,数据在键值对中,使用冒号和空格来标记每个键值对,参见图1所示。yaml格式的数据更为简洁,其将链式键通过格式缩进可以减少重复配置(module3)。而toml(tom

s obvious,minimal language)则彻底放弃了括号或缩进的底层原理,选择了显式键名链的方式,不使用空格或者缩进,使得使用者更容易编辑;toml旨在成为一个语义明显且易于阅读的最小化配置文件格式,被设计成可以无歧义地映射为哈希表,能很容易地被解析成各种语言中的数据结构。toml的语法广泛地由键值对key = "value"、[节名]与#注释构成,它支持的数据类型包括字符串、整形、浮点型、布尔型、日期时间、数组和图表。参见图1所示的配置项示例可以看出上述四种配置文件格式各自的特点。
[0004]然而,上述配置文件格式中的数据键值对基本都是采用唯一哈希键(hash key)的处理方式(一个键对应一个值),考虑到当前系统中普遍采用配置数据集中管理的方式——相似功能的配置数据大都集中在一起,随着功能模块越来越多,配置数据越来越多,配置文件可预见性的臃肿、维护繁琐。作为举例,比如,工程师在修改不同模块中相同的键的值时,
可能需要在各个模块中分别修改很多处,占用了工程师大量的时间,且容易出错。
[0005]综上所述,针对配置文件——尤其是包含大量相近似配置数据的配置文件,在加载配置时,如何在保证配置内容不变的情况下尽可能简化配置文件数据,是当前亟需解决的技术问题。

技术实现思路

[0006]本专利技术的目的在于:克服现有技术的不足,提供一种基于模糊匹配的配置加载方法、装置及应用。本专利技术使用模糊匹配的键,同时将相似键按照值尽可能模糊归纳,有效减少了臃肿配置,使得相同配置效果的配置数据更为简化,尤其的适用于具有大量相近似配置的配置文件的配置处理。
[0007]为实现上述目标,本专利技术提供了如下技术方案:一种基于模糊匹配的配置加载方法,包括步骤:对于需要加载配置的目标应用程序,获取待配置参数的键名链信息;解析前述待配置参数的键名链以得到所述键名链的各级键名域信息,根据前述各级键名域信息,使用预设的打分机对前述键名链进行打分,获取得分最高的配置作为前述键名链的匹配项;根据前述匹配项,基于前述目标应用程序的配置文件中的键值对信息获取前述匹配项对应的值后,将所述值作为前述键名链对应的值;其中,所述目标应用程序的配置文件为进行了配置数据简化的配置文件,所述配置文件的基本构成区块为键值对,所述键值对包括键和值,所述键值对的键为支持模糊匹配的键名链。
[0008]进一步,进行配置数据简化时,按照键值对的键和值对配置文件进行简化,包括步骤:获取目标应用程序的原始配置文件;对原始配置文件中的键值对进行分析,得到用于配置相近似属性的多个键值对,所述相近似属性通过键值对的相似键体现;对于前述多个键值对,根据相似键的键名链规则对相似键进行归纳以得到支持模糊匹配的简化键;其中,根据多个相似键的键名链字符串的相似性,使用正则表达式来替换键名链字符串中符合一定规则的字符串内容后,得到支撑模糊匹配的简化键,所述简化键允许使用预设的模糊匹配符号和正则表达式,能够匹配前述多个相似键;根据前述简化键,将前述多个键值对按照键值对的值进行整合后形成简化键值对;其中,将对应同一个值的多个键值对进行整合以形成一个简化键值对,所述简化键值对的键为前述简化键。
[0009]进一步,对于用于配置相近似属性的多个键值对,根据多个相似键的键名链字符串的设计规则能够得到一个或多个简化键,不同的简化键对应不同的键名链。
[0010]进一步,所述简化键支持多级键名链,所述多级键名链包括多个要素,多个要素之间通过分隔符相连,每个要素对应一级键名域。
[0011]进一步,所述分隔符为点符号“.”或者逗号“,”;所述模糊匹配符号为星型符号“*”或井字号“#”。
[0012]进一步,所述打分机包括索引库建立模块,用于根据简化键值对的简化配置信息
建立索引库;所述索引库建立模块被配置为:获取前述简化键值对的简化键和值信息;解析简化键的键名链以得到各级键名域信息,根据各级键名域的规则,建立以第一级键名域为根节点的树状数据结构,其他级键名域在对应的第一级键名域的根节点下基于各自的级别分别形成树状数据结构的子节点,多个第一级键名域对应多个树状数据结构,多个树状数据结构形成配置索引库;检索时,根据输入数据的各级键名域信息,自前述树状数据结构的根节点开始在配置索引库中进行遍历检索。
[0013]进一步,所述打分机包括打分模式采集模块和打分模块;所述打分模式采集模块,用以获取系统或用户针对键名链的各级键名域的匹配设置的打分模式;所述打本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于模糊匹配的配置加载方法,其特征在于包括步骤:对于需要加载配置的目标应用程序,获取待配置参数的键名链信息;解析前述待配置参数的键名链以得到所述键名链的各级键名域信息,根据前述各级键名域信息,使用预设的打分机对前述键名链进行打分,获取得分最高的配置作为前述键名链的匹配项;根据前述匹配项,基于前述目标应用程序的配置文件中的键值对信息获取前述匹配项对应的值后,将所述值作为前述键名链对应的值;其中,所述目标应用程序的配置文件为进行了配置数据简化的配置文件,所述配置文件的基本构成区块为键值对,所述键值对包括键和值,所述键值对的键为支持模糊匹配的键名链。2.根据权利要求1所述的方法,其特征在于,进行配置数据简化时,按照键值对的键和值对配置文件进行简化,包括步骤:获取目标应用程序的原始配置文件;对原始配置文件中的键值对进行分析,得到用于配置相近似属性的多个键值对,所述相近似属性通过键值对的相似键体现;对于前述多个键值对,根据相似键的键名链规则对相似键进行归纳以得到支持模糊匹配的简化键;其中,根据多个相似键的键名链字符串的相似性,使用正则表达式来替换键名链字符串中符合一定规则的字符串内容后,得到支撑模糊匹配的简化键,所述简化键允许使用预设的模糊匹配符号和正则表达式,能够匹配前述多个相似键;根据前述简化键,将前述多个键值对按照键值对的值进行整合后形成简化键值对;其中,将对应同一个值的多个键值对进行整合以形成一个简化键值对,所述简化键值对的键为前述简化键。3.根据权利要求2所述的方法,其特征在于:对于用于配置相近似属性的多个键值对,根据多个相似键的键名链字符串的设计规则能够得到一个或多个简化键,不同的简化键对应不同的键名链。4.根据权利要求1

3中任一项所述的方法,其特征在于:所述简化键支持多级键名链,所述多级键名链包括多个要素,多个要素之间通过分隔符相连,每个要素对应一级键名域。5.根据权利要求4所述的方法,其特征在于:所述分隔符为点符号“.”或者逗号“,”;所述模糊匹配符号为星型符号“*”或井字号“#”。6.根据权利要求2所述的方法,其特征在于:所述打分机包括索引库建立模块,用于根据简化键值对的简化配置信息建立索引库;所述索引库建立模块被配置为:获取前述简化键值对的简化键和值信息;解析简化键的键名链以得到各级键名域信息,根据各级键名域的规则,建立以第一级键名域为根节点的树状数据结构,其他级键名域在对应的第一级键名域的根节点下基于各自的级别分别形成树状数据结构的子节点,多个第一级键名域对应多个树状数据结构,多个树状数据结构形成配置索引库;检索时...

【专利技术属性】
技术研发人员:刘国强迟晓光汪宏斌钱二余吴力丰周烽
申请(专利权)人:上海中汇亿达金融信息技术有限公司
类型:发明
国别省市:

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

1