一种采用列存储的payload存储方法技术

技术编号:27059297 阅读:8 留言:0更新日期:2021-01-15 14:39
本发明专利技术涉及文件索引技术领域的一种采用列存储的payload存储方法,首先利用Lucene词条的Payloads在索引中为词条存储元数据信息,并设定块内存的大小为32K,后将待存储的多列数据存储到Payloads中;针对存储在Payloads中的多列数据按照设定好的块内存大小进行划分即按列存储的方式进行存储;以所述步骤S2存储之后再对列存的Payloads数据进行数据压缩,具体是对已划分好的块数据进行压缩并保存到索引文件数据库中供查询检索,本发明专利技术能够提供一种占用空间小、处理速度快、压缩效率高且读取响应迅速的采用列存储的payload存储方法。

【技术实现步骤摘要】
一种采用列存储的payload存储方法
本专利技术涉及文件索引
,尤其涉及一种采用列存储的payload存储方法。
技术介绍
索引是大数据时代搜索引擎的核心,建立索引的过程是将元数据(meta-data)处理成索引文件的过程;Lucene作为业内开源的高性能、可扩展的信息检索引擎,不仅仅能支持全文索引,也能够提供多种其他类型的索引方式,来满足不同类型的查询需求。Payloads诞生于Lucene的2.2版本,它是在Lucene2.1索引文件格式的基础上扩展而来,提供了一种可以灵活配置的高级索引技术,允许在索引中为词条存储元数据信息,在某些特定应用场景下能优化基于Lucene构建的应用的搜索性能。利用词条的Payload功能来存储文档级别的元数据的确可以减少词条的数目,提高检索效率,但当面对大量索引数据文件时,payload存储出的元数据文件也会相应变得很大,耗费存储空间的同时降低索引检索的性能。传统方案是将待存储数据以行存的方式存储在Payloads中,每行数据作为一个数组一起保存,将原先几个G的Payloads文件划分为多个块,针对每个块文件进行压缩存储,读取数据时定位到块,对该块内的数据全部读取。现有技术存在的缺点:数据在Payloads中按行存储,每行数据重复性较低,在压缩时无法对数据进行最优压缩,压缩效率不够高;数据按行存储并进行分块压缩之后,在读取数据时需要对单个块中的数据进行全部扫描,查找效率低且统计分析性能差。
技术实现思路
本专利技术目的是为了克服现有技术的不足而提供一种占用空间小、处理速度快、压缩效率高且读取响应迅速的采用列存储的payload存储方法。下面关于后续技术方案表述中涉及的专业名词解释如下:Lucene是指开源可扩展的信息检索引擎,支持多种索引方式。Term也就是指词条,其是Lucene中索引的最小单位。Payloads即词条的元数据或称载荷。为达到上述目的,本专利技术采用了如下技术方案。一种采用列存储的payload存储方法,具体包括如下:步骤S1:首先利用Lucene词条的Payloads在索引中为词条存储元数据信息,并设定块内存的大小为32K,后将待存储的多列数据存储到Payloads中;步骤S2:针对存储在Payloads中的多列数据按照设定好的块内存大小进行划分即按列存储的方式进行存储;步骤S3:以所述步骤S2存储之后再对列存的Payloads数据进行数据压缩,具体是对已划分好的块数据进行压缩并保存到索引文件数据库中供查询检索。作为本专利技术的进一步改进,所述步骤S1的块内存设定值采用16k、32k、64k或128k的其中之一。作为本专利技术的进一步改进,所述步骤S1的Payloads以pay为后缀名的文件格式存储,保存了段中每个文档的有效载体和Term的位置信息。作为本专利技术的进一步改进,所述步骤S1的Payloads的Term词条位置信息存储在pos为后缀名的文件格式存储。作为本专利技术的进一步改进,所述步骤S3中以列存方式对Payloads中数据进行压缩。由于上述技术方案的运用,本专利技术的技术方案带来的有益技术效果:本技术方案将数据在Payloads中按列存储,针对每列数据进行压缩,若单列数据中重复值较多,可使压缩效率最大化,从而降低存储空间;本技术方案对数据在Payloads中进行按列存储之后,查询时只需要扫描需要的列,无需全部扫描,有效提升查询性能;本技术方案的数据在Payloads中采用按列存储的方式,读取数据时可以连续读取,适用于分组、去重求和等多种统计查询分析场景,响应速度也得到大幅提升。附图说明附图1为本专利技术的列存储结构示意图。具体实施方式下面结合具体实施例对本专利技术作进一步的详细说明。一种采用列存储的payload存储方法,具体包括如下:步骤S1:首先,利用Lucene词条的Payloads在索引中为词条存储元数据信息,并设定块内存的大小为32K,后将待存储的多列数据存储到Payloads中;步骤S2:针对存储在Payloads中的多列数据按照设定好的块内存大小进行划分即按列存储的方式进行存储;步骤S3:以所述步骤S2存储之后再对列存的Payloads数据进行数据压缩,具体是对已划分好的块数据进行压缩并保存到索引文件数据库中供查询检索;所述步骤S1的块内存设定值采用16k、32k、64k或128k的其中之一。所述步骤S1的Payloads以pay为后缀名的文件格式存储,保存了段中每个文档的有效载体和Term的位置信息;所述步骤S1的Payloads的Term词条位置信息存储在pos为后缀名的文件格式存储。本技术方案利用Lucene词条的Payloads可以在索引中为词条存储元数据信息的特性,将待存储的多列数据存储到Payloads中;针对存储在Payloads中的多列数据选择按列存储的方式进行存储,列存方式效率更高,读取速度更快,加快统计分析场景的响应性能;以按列方式存储之后对列存的Payloads数据进行压缩,压缩效率得到最大化,从而最大程度降低存储空间。以上仅是本专利技术的具体应用范例,对本专利技术的保护范围不构成任何限制。凡采用等同变换或者等效替换而形成的技术方案,均落在本专利技术权利保护范围之内。本文档来自技高网...

【技术保护点】
1.一种采用列存储的payload存储方法,其特征在于,具体包括如下:/n步骤S1:首先利用Lucene词条的Payloads在索引中为词条存储元数据信息,并设定块内存的大小为32K,后将待存储的多列数据存储到Payloads中;/n步骤S2:针对存储在Payloads中的多列数据按照设定好的块内存大小进行划分即按列存储的方式进行存储;/n步骤S3:以所述步骤S2存储之后再对列存的Payloads数据进行数据压缩,具体是对已划分好的块数据进行压缩并保存到索引文件数据库中供查询检索。/n

【技术特征摘要】
1.一种采用列存储的payload存储方法,其特征在于,具体包括如下:
步骤S1:首先利用Lucene词条的Payloads在索引中为词条存储元数据信息,并设定块内存的大小为32K,后将待存储的多列数据存储到Payloads中;
步骤S2:针对存储在Payloads中的多列数据按照设定好的块内存大小进行划分即按列存储的方式进行存储;
步骤S3:以所述步骤S2存储之后再对列存的Payloads数据进行数据压缩,具体是对已划分好的块数据进行压缩并保存到索引文件数据库中供查询检索。


2.根据权利要求1所述的一种采用列存储的payload存储方法,其特征在于:所述步骤S1的块...

【专利技术属性】
技术研发人员:母延年
申请(专利权)人:南京好鱼科技有限公司
类型:发明
国别省市:江苏;32

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

1