CN114238548A - 索引用存储系统、方法、电子设备和可读存储介质 - Google Patents
索引用存储系统、方法、电子设备和可读存储介质 Download PDFInfo
- Publication number
- CN114238548A CN114238548A CN202111418592.5A CN202111418592A CN114238548A CN 114238548 A CN114238548 A CN 114238548A CN 202111418592 A CN202111418592 A CN 202111418592A CN 114238548 A CN114238548 A CN 114238548A
- Authority
- CN
- China
- Prior art keywords
- index
- storage
- data
- metadata information
- preset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000013500 data storage Methods 0.000 claims abstract description 33
- 230000008569 process Effects 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 10
- 238000003058 natural language processing Methods 0.000 abstract description 4
- 230000000875 corresponding effect Effects 0.000 description 44
- 238000005457 optimization Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 239000000835 fiber Substances 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004883 computer application Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000017525 heat dissipation Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/322—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/328—Management therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/38—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于动态索引的信息存储系统、方法、电子设备及可读存储介质。其中该种基于动态索引的信息存储系统具体包括:多个数据存储单元和主索引单元;每个数据存储单元进一步包括多个存储模块和子索引模块;其中特别地,任意一个数据存储单元中每个存储模块包含的元数据信息的数量均小于第一预设阈值,且任意两个数据存储单元间,其中每个存储模块包含的元数据信息的数量的差值均小于第二预设阈值。通过本技术方案,提出了一种兼顾空间存储效率和时间索引效率的数据存储结构,可以适用于包括输入法和其他自然语言处理项目在内的多种存储及索引查询领域,灵活性强适应性高,具有可推广价值。
Description
技术领域
本发明涉及数据存储和数据索引技术领域,具体地,公开了一种基于动态索引的信息存储系统、方法、电子设备及可读存储介质。
背景技术
数据是信息处理的基本要素,在互联网飞速发展的背景下,其显得尤为重要。在不同载体中,如何高效的将其进行处理、存储、查询等,也成为了企业和研究者们普遍所要面临和解决的问题。相对传统的数据,人们将大数据的特征总结为5个V,即数据量大(Volume),速度快(Velocity),类型多(Variety),难辨识 (Veracity)和价值密度低(Value)(CHENGX Q,JINX L,WANGY Z,等.Survey on big data system and analytictechnology[J].Journal of Software,2014,25(9):1889- 1908.)
在互联网快速发展的过程中,随着网络应用的数据量的加大,企业已感觉到存储的容量和性能逐渐落后互联网发展的需求。在此背景下,一些满足企业需求的数据存储技术便应运而生,可总结为直连式存储、网络附加存储和存储区域网络三大类。 (杨俊杰,廖卓凡,冯超超.大数据存储架构和算法研究综述[J].计算机应用,2016, 36(9):2465-2471.DOI:10.11772/j.issn.1001-9081.2016.09.2465.)其中:
1)直连式存储(Direct Attached Storage,DAS)是指将外部存储设备通过数据接口直接挂载在服务器的内部总线上,存储设备是整个服务器的一部分。这种存储方式适用于一些对存储要求不高的小型服务器,但由于存储设备与服务服务器之间的连接通常使用小型计算机系统接口(Small Computer System Interface,SCSI),其传输速度较慢,且服务器的SCSI接口资源有限,随着存储需求的不断增大和服务器运行速度的提升,存储设备的输入输出将成为服务器的瓶颈。
2)网络附加存储(Network Attached Storage,NAS)则将外部存储设备与服务器通过网络技术(如以太网)连接,存储设备不再是服务器的一部分,而是网络中的独立节点。NAS虽然能解决接口资源的限制,但是因数据的存取转移至网络,反而会加重网络的负载,而且随着存储容量的扩展,性能会进一步下降。
3)存储区域网络(Storage Area Network,SAN)是通过光纤交换机为存储设备建立高速专用网络,采用光纤通道(Fibre Channel,FC)技术将服务器和存储设备相连接。这种结构扩展能力强,且允许任何服务器可连接到任何存储阵列,实现了高速共享存储;而且由于采用光纤接口,SAN还具有更高的带宽。但由于光纤成本较高,且技术实现较复杂,会导致后期管理和升级成本较高。
4)基于分布式的数据库存储。可以理解的是,传统的集中式存储对搭建和管理的要求较高,由于硬件设备的集中存放,机房的空间、散热和承重等都有严格的要求;存储设备要求性能较好,对主干网络的带宽也有较高的要求(ZHANGB,CHENJ R,LEJ J.Overviewon big data management technology research[J].Computer Applications andSoftware,2014,31(11):1-5.)。虽然计算向数据迁移的方法在很大程度上提升了大数据集群的处理性能,但这种处理方式仍存在很多问题,性能仍然有很大的提升空间,如数据副本的存储造成的数据冗余过多,执行负载平衡或副本失效时进行的数据迁移产生的巨大的网络开销等。随着数据密集型的应用和大数据处理需求的急剧增长,以及处理框架仍不成熟,数据的存储策略成为了影响处理性能的重要因素,如何改进数据的存储策略来提升处理框架已成为当今学术界的研究热门。目前,分布式存储系统存在的挑战主要体现在如何减少跨数据节点的网络传输、如何在保证负载均衡的同时提升处理性能,以及如何在保证可靠性的前提下节约能耗等问题。
发明内容
针对现有技术中存在的上述缺陷,本发明提供一种基于动态索引的信息存储系统、方法、电子设备及可读存储介质。
在本申请的第一方面提供了一种基于动态索引的信息存储系统,该种基于动态索引的信息存储系统具体包括:
多个数据存储单元,每个数据存储单元用于对待索引的元数据信息进行存储;
元数据信息包括预设数据分类下的至少两个不同的数据类别,每个数据存储单元对应存储一个数据类别对应的全部元数据信息;
主索引单元,分别连接每个数据存储单元,用于根据索引需求获取对应的索引数据类别,并根据索引数据类别从对应的数据存储单元中获取对应的元数据信息;
其中,每个数据存储单元包括:
多个存储模块,每个存储模块中存储有若干元数据信息;
子索引模块,分别连接每个存储模块,用于根据索引需求和子索引模块对应的预设索引规则,获取对应的元数据信息;
于任意两个存储模块间,其中存储的元数据信息的数量的差值均小于预设阈值。
在上述第一方面的一种可能的实现中,预设数据分类包括元数据信息对应的存储容量的大小、元数据信息对应的显示内容的长度、元数据信息对应的处理模型的类别中的至少一种。
在上述第一方面的一种可能的实现中,于存储模块中,元数据信息依照预设次序有序存储;
子索引模块于索引过程中,依照预设次序对目标存储模块中的元数据信息进行遍历索引。
在上述第一方面的一种可能的实现中,于存储模块中,元数据信息随机无序存储;
存储模块根据元数据信息的存储形式生成相应的存储列表;
子索引模块于索引过程中,依照存储列表对目标存储模块中的元数据信息进行遍历索引。
在上述第一方面的一种可能的实现中,预设索引规则包括索引树结构;
索引树结构包括一个根节点和多个叶子节点,根节点与预设索引规则对应的数据类别相对应;
每个叶子节点与预设索引规则对应的存储模块一一对应。
本申请的第二方面提供了一种基于动态索引的信息存储方法,应用于前述第一方面提供的基于动态索引的信息存储系统中,用于对元数据信息进行存储,元数据信息包括预设数据分类下的至少两个不同的数据类别;
索引存储方法包括:
基于数据类别,对全部元数据信息进行一次划分;
基于预设索引规则,对每个数据类别对应的全部元数据信息进行二次划分,得到多个待存储数据段;
将每个待存储数据段存储至对应的存储模块中;
其中,于任意两个待存储数据段中,其中包含的元数据信息的数量的差值均小于预设阈值。
在上述第二方面的一种可能的实现中,预设索引规则包括索引树结构;
索引树结构包括一个根节点和多个叶子节点,根节点与预设索引规则对应的数据类别相对应;
每个叶子节点与预设索引规则对应的待存储数据段一一对应。
在上述第二方面的一种可能的实现中,通过调整索引树深度和/或叶子节点的数量,以实现于任意两个待存储数据段中,其中包含的元数据信息的数量的差值均小于预设阈值;
其中,于任意一个数据类别中,索引树深度与每个待存储数据段中包含的元数据信息的数量反相关;且
于任意一个数据类别中,叶子节点的数量与每个待存储数据段中包含的元数据信息的数量反相关。
本申请的第三方面提供了一种电子设备,包括:存储器,存储器用于存储处理程序;处理器,处理器执行处理程序时实现前述第一方面所提供的基于动态索引的信息存储系统。
本申请的第四方面提供了一种计算机可读存储介质,该种计算机可读存储介质上存储有处理程序,处理程序被处理器执行时实现前述第一方面所提供的基于动态索引的信息存储系统。
与现有技术相比,本申请具有如下的有益效果:
通过本申请提出的技术方案,借助基于索引树的结构对于元数据信息进行分类存储,并要求不同存储模块间包含的元数据信息的数量能够保持基本一致。上述技术方案不仅能够实现存储模块对应的索引树在存储空间上的节省,还能够通过均匀分布的元数据信息以保证每次索引和查询的时间稳定性,解决了现有项目开发过程中所面临的数据差异量大、查询索引需求不同所导致的占用空间多,时间消耗长以及查询索引稳定性不佳的痛点。
本申请提出的技术方案提供了一种兼顾空间存储效率和时间索引效率的数据存储结构,可以适用于包括输入法和其他自然语言处理项目在内的多种存储及索引查询领域,并可以根据不同的项目需求选择不同的索引树建树方法并调整索引树的相关参数组合以满足元数据信息的存储需求,技术方案整体灵活性、强适应性高,具有可推广价值。
具体而言,本专利可以适用于各类大块数据存储和查询的需求。其中比较典型的应用场景如输入法,其中有大量的词库和语言模型等存储和查询的需求,大都可以采用该方法来有效地解决。下面就几个实际的应用需求,基于该方法提出相应的解决方案。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1根据本申请实施例,示出了一种基于动态索引的信息存储系统的结构示意图;
图2根据本申请实施例,示出了一种索引树结构示意图;
图3根据本申请实施例,示出了一种基于动态索引的存储方法的流程示意图;
图4根据本申请实施例,示出了一种应用于英文词库的存储和索引管理的流程示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
为了解决现有技术中存在的现有项目开发过程中所面临的数据差异大、查询索引需求不同所导致的占用空间多,时间消耗长以及查询索引稳定性不佳的痛点,本申请提出了一种基于动态索引的信息存储系统、系统、电子设备及可读存储介质。通过该种基于动态索引的信息存储系统,借助基于索引树的结构对于元数据信息进行分类存储,并要求不同存储模块间包含的元数据信息的数量能够保持基本一致。该技术方案不仅能够实现存储模块对应的索引树在存储空间上的节省,还能够通过均匀分布的元数据信息以保证每次索引和查询的时间稳定性。
具体地,图1根据本申请的一些实施例,示出了一种基于动态索引的信息存储系统的结构示意图,该种基于动态索引的信息存储系统具体包括:
多个数据存储单元1,每个数据存储单元1用于对待索引的元数据信息进行存储。其中,元数据信息可以包括预设数据分类下的至少两个不同的数据类别,每个数据存储单元对应存储一个数据类别对应的全部元数据信息。有关数据类别划分的具体内容将于下文中进行说明。
主索引单元2,分别连接每个数据存储单元1,用于根据索引需求获取对应的索引数据类别,并根据索引数据类别从对应的数据存储单元中获取对应的元数据信息。
于上述实施例中,具体地,每个数据存储单元1进一步包括:
多个存储模块11,其中每个存储模块11中均存储有若干元数据信息。
子索引模块12,分别连接每个存储模块11,用于根据索引需求和子索引模块对应的预设索引规则,获取对应的元数据信息。
于上述实施例中,可以理解的是,为了实现空间存储效率和时间索引效率的优化,需要对该种基于动态索引的存储系统执行如下限定:于任意两个存储模块11之间,其中存储的元数据信息的数量的差值均小于预设阈值。有关上述限定的原因及作用将于后文中进行说明。
于上述实施例的一种可能的实现中,有关元数据信息的预设数据分类可以包括元数据信息对应的存储容量的大小、元数据信息对应的显示内容的长度、元数据信息对应的处理模型的类别中的至少一种。可以理解的是,一般来说,对于元数据信息而言,其数据格式以及对应的存储空间存在着大小不同的差异性,若是将这些元数据信息进行随机无序的存储,会造成存储空间利用率低以及后续查询索引困难等问题。为了提高存储效率和后续的查询效率,在该种基于动态索引的信息存储系统中,可以预先按照元数据信息的所需存储空间的大小进行相应的分类,即预设数据分类可以基于元数据信息对应的存储容量的大小。考虑到本申请提出的基于动态索引的存储系统往往应用于括输入法或是其他自然语言处理项目在内的多种存储及索引查询领域,在进行数据类别的区分的过程中也可以依照元数据信息的原本信息格式进行相应的分类划分:例如对于以中文词语呈现的元数据信息,可以按照字长将预设数据分类设定为为长度为1、2、3、……、N(其中N为自然数,代表一个中文词语由N个汉字所组成)的词区;又例如对于以语言模型呈现的元数据信息,可以按将预设数据分类设定为一元模型、二元模型、三元模型等,在此不做限定。
可以理解的是,于上述实施例的可能实现中,有关元数据信息的预设数据分类可以根据元数据信息的呈现形式产生不同的划分方式,但本质上仍是根据元数据信息对应的存储容量的大小进行相应的划分,从而实现空间存储效率的提升。
在上述实施例的一种可能的实现中,于存储模块11中,元数据信息既可以依照预设次序进行有序存储,也可以执行随机无序存储,在此不做限定。当元数据信息依照预设次序有序存储时,子索引模块12于索引过程中,可以直接依照预设次序对目标存储模块中的元数据信息进行遍历索引。而当元数据信息随机无序存储时,需要由存储模块11在元数据信息存储完成后,根据存储顺序或是其他存储形式生成与之对应的存储列表,使得子索引模块12能够在后续的索引过程中依照存储列表对目标存储模块中的元数据信息进行遍历索引。作为优选的实施方式,元数据信息依照预设次序进行有序存储能够进一步提升后续的索引速度。
以下将针对上述实施例所提出的基于动态索引的存储系统如何实现空间存储效率和时间索引效率的优化做出具体说明。
在本申请的一些实施例中,预设索引规则的实现可以依托如图2所示的包括索引树结构。于该索引树结构中,其包括了一个根节点、多个中间节点和多个叶子节点。其中,根节点与预设索引规则对应的数据类别相对应,每个叶子节点与预设索引规则对应的存储模块一一对应。
如图2所示,为了尽可能地提高空间效率,与叶子节点对应的存储模块中存储的元数据信息的大小是相对均匀,进而能够保证每次查询的时间稳定性。
可以理解的是,将索引树结构作为预设索引规则组成部分之一是为了方便后续的查询索引动作所引入的数据结构。在本申请的一些实施例中,选用树形结构作为索引树的数据结构,并基于对索引树的深度和宽度参数(即叶子节点的数量)的设计和调整来适应不同的应用场景。具体地,通过如图2所示的索引树结构示意图,我们不难获悉:
索引树深度和索引树宽度与每个存储模块11中的元数据信息的数量反相关。可以理解的是,对于一个元数据信息既定的数据存储单元1而言,索引树深度和索引树宽度越大,那么对应的其叶子节点的数目就会越多,则对于元数据信息的存储分段也就越多,相应地每个存储模块11中的元数据信息的数量就会越小。
索引树深度和索引树宽度,索引树结构所占用的数据存储空间就越小。可以理解的是,经过常规的优化处理操作,整个元数据信息所需占用的空间往往不具备更进一步的优化方法;而索引树结构中的索引树深度和索引树宽度则直接决定了其节点的数量,也直接决定了整个索引树结构存储的空间大小。
每个存储模块11中的元数据信息的数量与数据查询平均耗时正相关。可以理解的是,于存储模块11中,元数据信息既可以依照预设次序进行有序存储,也可以执行随机无序存储,但无论上述何种存储形式,每个存储模块11中的元数据信息的数量与数据查询平均耗时正相关。进一步地,元数据信息处于无序状态下的查询速度对每个存储模块11中的元数据信息的数量更加敏感。
基于上述分析,本申请所提出的基于动态索引的存储系统,能够根据应用场景需求, 设置合适的索引树深度和索引树宽度,以达到整体最优。由于索引树深度-索引树宽度参数组合可以平衡整个单元的空间大小和查询速度,这显著提高了该基于动态索引的存储系统在不同条件下的适应性。
具体地,根据不同的需求,建树的方案也会各有不同。如需求中有基于前缀的查询,那么一般会根据每个数据存储单元1的词条的前缀来建立;如果每个数据存储单元1中的固定存储数量的差异较大,需要通过更改索引树宽度的方式来进行控制,一种可能的实现方式可以是对数据存储单元1中的每个元数据信息通过空间映射(如Hash映射算法)来进行检索树的建立。
一般来说,根据建树方法的不同,索引树深度均存在一个最大上限。例如,采用前述实施例中所提及的采用前缀的方式来建树,则索引树深度的最大上限会与元数据信息对应的词条长度相关联。而索引树宽度是指索引树中每个父节点最多可以有多少个子节点。一般来说,只有对于一个本身就很宽的索引树结构,才有必要采用添加宽度限制的方法来控制树的大小。
在上述实施例的一种可能的实现方式中,索引树中的美俄滋滋节点至根节点的索引树深度可以是一致的;而在上述实施例的另一种可能的实现方式中,索引树中的每个叶子节点至根节点的索引树深度也可以选择为不一致,在此不做限定。
在本申请的一些实施例中,还提供了一种基于动态索引的信息存储方法,应用于前述实施例所提供的基于动态索引的信息存储系统中。具体地如图3所示,该种基于动态索引的信息存储方法用于对元数据信息进行存储,元数据信息包括预设数据分类下的至少两个不同的数据类别。具体可以包括:
步骤100,基于数据类别,对全部元数据信息进行一次划分,。
步骤200,基于预设索引规则,对每个数据类别对应的全部元数据信息进行二次划分,得到多个待存储数据段。
步骤300,将每个待存储数据段存储至对应的存储模块中。其中,于任意两个待存储数据段中,其中包含的元数据信息的数量的差值均小于预设阈值。
可以理解的是,于上述实施例中,基于动态索引的存储系统中各个功能模块的执行与本实施例中基于动态索引的信息存储方法中的步骤流程相一致,在此不做赘述。
可以理解的是,本申请所涉及的技术方案可以适用于各类大块数据存储和查询的需求。其中较为典型的应用场景可以包括输入法,或是其他有大量的词库和语言模型等存储和查询的需求的应用场景,均可以采用本申请涉及的技术方案来实行存储优化和索引优化。现提供一些具体实施例对本技术方案的实际应用做出进一步说明:
在本申请的一具体实施例中,可以将上述技术方案应用于英文词库的存储和索引管理中。可以理解的是,在英文输入法中,英文词库的需求一般是要将若干个英文词语(一般是几万到十几万)存储起来,并且支持各类批量查询或是前缀查询功能。具体地,基本操作流程可以如图4所示:
步骤401:将词库根据单词长度分为不同的片段。其中,每个片段对应的存储位置即为前述实施例中的数据存储单元1,为了便于说明以下描述中统一将其表示为“词区”
步骤402:确定词库中各个词条的索引树建立方式。其中,如考虑到有前缀查询的需求,可采用英文词语的前缀字母串作为路径。如无特殊设计需要,于上述步骤中无需对索引树的宽度,即叶子节点的数量进行设定,根据词条的既定分布即可。
步骤403:预设索引树的深度,并为各个词区构建索引树和数据段,并保存至相关配置文件。
步骤404:基于索引树和数据段设计并实现查询方法。
步骤405:对各个词区分别测试调整不同的索引树深度参数组合,优化并确定最终的设计方案。
与上述具体实施例中,目前现有技术并不能够解决对于存储空间大小的要求较高,以及通过前缀的方式建树所导致的不同词区的分片粒度并不均匀,故可以通过调整不同词区的索引树深度和宽度以提升查询效率的稳定性。
在本申请的另一具体实施例中,还可以将上述技术方案应用于全拼或是简拼中文词库的存储和索引管理中。可以理解的是,相较于英文词库,中文词库的特点是词条数量特别大(几十万甚至上百万),必须考虑如何充分利用空间存储信息,同时还要兼顾查询效率。在实际应用过程中的的需求一般会是如何基于全拼或者简拼组合来查询符合条件的词条。具体地,基本操作流程可以包括:
步骤501:将词库根据词语长度分为不同的片段。其中,每个片段对应的存储位置即为前述实施例中的数据存储单元1。
步骤502:确定词库中各个词条的索引树建立方式。其中,如需求要求必须兼顾全拼和简拼的方式查询,可设计以词语前缀字的简拼串为路径,这里的简拼一般会优化为声母的身份信息。如无特殊设计需要,于上述步骤中无需对索引树的宽度,即叶子节点的数量进行设定,根据词条的既定分布即可。
步骤503:预设索引树的深度,并为各个词区构建索引树和数据段,并保存至相关配置文件。
步骤504:基于索引树和数据段设计并实现查询方法。
步骤505:对各个词区分别测试调整不同的索引树深度参数组合,优化并确定最终的设计方案。
上述步骤503至步骤505执行与前述步骤403至405相同,在此不做赘述。
在本申请的另一具体实施例中,还可以将上述技术方案应用于语言模型的存储和索引管理中。可以理解的是,语言模型在输入法以及其他自然语言相关项目的应用均非常普遍。考虑到语言模型的普遍存储体积较大,条目众多,在应用过程中对于其查询速度也有较大挑战。具体地,基本操作流程可以包括:
步骤601:将语言模型(N-gram)根据不同阶数分为不同的片段,如一元模型、二元模型、三元模型等,与此可以被称为阶区。
步骤602:确定N阶词组建立索引树的方式。其中,考虑到一般每个词语本身会编码为词语身份信息,对索引树的宽度设定的方法有很多,其中一个典型的方法即哈希值空间映射,将不同的词语身份信息映射到固定宽度的空间。
步骤503:预设索引树的深度,并为各个词区构建索引树和数据段,并保存至相关配置文件。
步骤504:基于索引树和数据段设计并实现查询方法。
步骤505:对各个词区分别测试调整不同的索引树深度参数组合,优化并确定最终的设计方案。
上述步骤603至步骤605执行与前述步骤403至405相同,在此不做赘述。
综上,通过本申请提出的技术方案,借助基于索引树的结构对于元数据信息进行分类存储,并要求不同存储模块间包含的元数据信息的数量能够保持基本一致。上述技术方案不仅能够实现存储模块对应的索引树在存储空间上的节省,还能够通过均匀分布的元数据信息以保证每次索引和查询的时间稳定性,解决了现有项目开发过程中所面临的数据差异量大、查询索引需求不同所导致的占用空间多,时间消耗长以及查询索引稳定性不佳的痛点。该种兼顾空间存储效率和时间索引效率的数据存储结构,可以适用于包括输入法和其他自然语言处理项目在内的多种存储及索引查询领域,并可以根据不同的项目需求选择不同的索引树建树方法并调整索引树的相关参数组合以满足元数据信息的存储需求,技术方案整体灵活性、强适应性高,具有可推广价值。
在本申请的一些实施例中,还提供了一种电子设备。该种电子设备中包含存储器和处理器,其中存储器用于对处理程序进行存储,处理器则根据指令对处理程序进行执行。当处理器对处理程序进行执行时,使得前述实施例中的基于动态索引的信息存储系统得以实现。
在本申请的一些实施例中,还提供了一种可读存储介质,该可读存储介质可以为非易失性可读存储介质,也可以为易失性可读存储介质。该可读存储介质中存储有指令,当该指令在计算机上运行时,使得包含该种可读存储介质的电子设备执行前述的基于动态索引的信息存储系统。
可以理解的是,对于前述基于动态索引的存储系统中的各个功能模块,如果均以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-only memory, ROM)、随机存取存储器(Random accessmemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请所公开的技术方案所涉及的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、 C++等,还包括常规的过程式程序设计语言—诸如C语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
上面结合附图对本申请涉及的技术方案的实施方式作了详细说明,但是本申请涉及的技术方案并不限于上述实施方式。即使对本申请涉及的技术方案做出各种变化,倘若这些变化属于本申请涉及的技术方案权利要求及其等同技术的范围之内,则仍落入在本申请涉及的技术方案的保护范围之中。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (10)
1.一种基于动态索引的信息存储系统,其特征在于,所述基于动态索引的信息存储系统包括:
多个数据存储单元,每个所述数据存储单元用于对待索引的元数据信息进行存储;
所述元数据信息包括预设数据分类下的至少两个不同的数据类别,每个所述数据存储单元对应存储一个所述数据类别对应的全部所述元数据信息;
主索引单元,分别连接每个所述数据存储单元,用于根据索引需求获取对应的索引数据类别,并根据所述索引数据类别从对应的所述数据存储单元中获取对应的所述元数据信息;
其中,每个所述数据存储单元包括:
多个存储模块,每个存储模块中存储有若干所述元数据信息;
子索引模块,分别连接每个所述存储模块,用于根据所述索引需求和所述子索引模块对应的预设索引规则,获取对应的所述元数据信息;
于任意两个所述存储模块间,其中存储的所述元数据信息的数量的差值均小于预设阈值。
2.如权利要求1所述的基于动态索引的信息存储系统,其特征在于,所述预设数据分类包括所述元数据信息对应的存储容量的大小、所述元数据信息对应的显示内容的长度、所述元数据信息对应的处理模型的类别中的至少一种。
3.如权利要求1所述的基于动态索引的信息存储系统,其特征在于,于所述存储模块中,所述元数据信息依照预设次序有序存储;
所述子索引模块于索引过程中,依照所述预设次序对目标存储模块中的所述元数据信息进行遍历索引。
4.如权利要求1所述的基于动态索引的信息存储系统,其特征在于,于所述存储模块中,所述元数据信息随机无序存储;
所述存储模块根据所述元数据信息的存储形式生成相应的存储列表;
所述子索引模块于索引过程中,依照所述存储列表对目标存储模块中的所述元数据信息进行遍历索引。
5.如权利要求1所述的基于动态索引的信息存储系统,其特征在于,所述预设索引规则包括索引树结构;
所述索引树结构包括一个根节点和多个叶子节点,所述根节点与所述预设索引规则对应的所述数据类别相对应;
每个所述叶子节点与所述预设索引规则对应的所述存储模块一一对应。
6.一种基于动态索引的信息存储方法,其特征在于,应用于如权利要求1至5中任意一项所述的基于动态索引的信息存储系统中,用于对元数据信息进行存储,所述元数据信息包括预设数据分类下的至少两个不同的数据类别;
所述索引存储方法包括:
基于所述数据类别,对全部所述元数据信息进行一次划分;
基于预设索引规则,对每个所述数据类别对应的全部所述元数据信息进行二次划分,得到多个待存储数据段;
将每个所述待存储数据段存储至对应的存储模块中;
其中,于任意两个所述待存储数据段中,其中包含的元数据信息的数量的差值均小于预设阈值。
7.如权利要求6所述的基于动态索引的信息存储方法,其特征在于,所述预设索引规则包括索引树结构;
所述索引树结构包括一个根节点和多个叶子节点,所述根节点与所述预设索引规则对应的所述数据类别相对应;
每个所述叶子节点与所述预设索引规则对应的所述待存储数据段一一对应。
8.如权利要求7所述的基于动态索引的信息存储方法,其特征在于,通过调整所述索引树深度和/或所述叶子节点的数量,以实现于任意两个所述待存储数据段中,其中包含的元数据信息的数量的差值均小于所述预设阈值;
其中,于任意一个所述数据类别中,所述索引树深度与每个所述待存储数据段中包含的元数据信息的数量反相关;且
于任意一个所述数据类别中,所述叶子节点的数量与每个所述待存储数据段中包含的元数据信息的数量反相关。
9.一种电子设备,其特征在于,包括:
存储器,所述存储器用于存储处理程序;
处理器,所述处理器执行所述处理程序时实现如权利要求1至5中任意一项所述的基于动态索引的信息存储系统。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有处理程序,所述处理程序被处理器执行时实现如权利要求1至5中任意一项所述的基于动态索引的信息存储系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111418592.5A CN114238548A (zh) | 2021-11-25 | 2021-11-25 | 索引用存储系统、方法、电子设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111418592.5A CN114238548A (zh) | 2021-11-25 | 2021-11-25 | 索引用存储系统、方法、电子设备和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114238548A true CN114238548A (zh) | 2022-03-25 |
Family
ID=80751280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111418592.5A Pending CN114238548A (zh) | 2021-11-25 | 2021-11-25 | 索引用存储系统、方法、电子设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114238548A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117851341A (zh) * | 2023-11-23 | 2024-04-09 | 广州鼎甲计算机科技有限公司 | 元数据索引方法、装置、计算机设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103324642A (zh) * | 2012-03-23 | 2013-09-25 | 日电(中国)有限公司 | 为数据建立索引的系统和方法以及数据查询方法 |
CN105159895A (zh) * | 2014-05-28 | 2015-12-16 | 国际商业机器公司 | 用于存储和查询数据的方法和系统 |
US20190384825A1 (en) * | 2018-06-15 | 2019-12-19 | EMC IP Holding Company LLC | Method and device for data protection and computer readable storage medium |
CN110659286A (zh) * | 2019-09-05 | 2020-01-07 | 苏州大学 | 基于弱平衡空间树动态空间索引方法及其存储介质、装置 |
KR20200029431A (ko) * | 2020-03-11 | 2020-03-18 | 주식회사 티맥스데이터 | 효율적인 인덱싱을 제공하기 위한 방법, 장치 및 컴퓨터-판독가능 매체에 포함된 컴퓨터 프로그램 |
CN113268457A (zh) * | 2021-05-24 | 2021-08-17 | 华中科技大学 | 一种支持高效写的自适应学习索引方法和系统 |
-
2021
- 2021-11-25 CN CN202111418592.5A patent/CN114238548A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103324642A (zh) * | 2012-03-23 | 2013-09-25 | 日电(中国)有限公司 | 为数据建立索引的系统和方法以及数据查询方法 |
CN105159895A (zh) * | 2014-05-28 | 2015-12-16 | 国际商业机器公司 | 用于存储和查询数据的方法和系统 |
US20190384825A1 (en) * | 2018-06-15 | 2019-12-19 | EMC IP Holding Company LLC | Method and device for data protection and computer readable storage medium |
CN110659286A (zh) * | 2019-09-05 | 2020-01-07 | 苏州大学 | 基于弱平衡空间树动态空间索引方法及其存储介质、装置 |
KR20200029431A (ko) * | 2020-03-11 | 2020-03-18 | 주식회사 티맥스데이터 | 효율적인 인덱싱을 제공하기 위한 방법, 장치 및 컴퓨터-판독가능 매체에 포함된 컴퓨터 프로그램 |
CN113268457A (zh) * | 2021-05-24 | 2021-08-17 | 华中科技大学 | 一种支持高效写的自适应学习索引方法和系统 |
Non-Patent Citations (2)
Title |
---|
侯风巍: "《数据结构要点精析 C语言版》", 31 March 2007, 北京航空航天大学出版社, pages: 289 - 290 * |
王月敏: "《大学计算机信息技术基础教程》", 30 August 2012, 河海大学出版社, pages: 128 - 129 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117851341A (zh) * | 2023-11-23 | 2024-04-09 | 广州鼎甲计算机科技有限公司 | 元数据索引方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11593037B2 (en) | File system block-level tiering and co-allocation | |
US8959519B2 (en) | Processing hierarchical data in a map-reduce framework | |
US20170083573A1 (en) | Multi-query optimization | |
US10268716B2 (en) | Enhanced hadoop framework for big-data applications | |
US10558756B2 (en) | Unsupervised information extraction dictionary creation | |
CN106776929A (zh) | 一种信息检索的方法及装置 | |
US10885085B2 (en) | System to organize search and display unstructured data | |
US20150113535A1 (en) | Parallel data processing system, computer, and parallel data processing method | |
CN112347076B (zh) | 分布式数据库的数据存储方法、装置和计算机设备 | |
US20240061712A1 (en) | Method, apparatus, and system for creating training task on ai training platform, and medium | |
US10558747B2 (en) | Unsupervised information extraction dictionary creation | |
CN109885641A (zh) | 一种数据库中文全文检索的方法及系统 | |
CN114238548A (zh) | 索引用存储系统、方法、电子设备和可读存储介质 | |
US9275091B2 (en) | Database management device and database management method | |
Iacob et al. | Gpu accelerated information retrieval using bloom filters | |
CN106570151A (zh) | 一种海量文件的数据收集处理方法及系统 | |
US20190196783A1 (en) | Data shuffling with hierarchical tuple spaces | |
CN111684779B (zh) | 分层存储管理系统中的数据迁移 | |
CN115858522A (zh) | 基于树的索引结构的局部压缩 | |
CN112732723A (zh) | 一种提高Elasticsearch并发检索效率的方法 | |
US10963490B2 (en) | Text extraction and processing | |
US8782519B1 (en) | Systems and methods for archiving and displaying lengthy documents based on content priority levels | |
CN112069185B (zh) | 索引构建方法、装置、电子设备和介质 | |
CN113032700B (zh) | 自然语言数据渲染和网站优化方法、系统、设备及介质 | |
CN113934361B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |