一种基于大范围扫描的词典优化方法与流程

文档序号:23729266发布日期:2021-01-26 19:27阅读:88来源:国知局

[0001]
本发明涉及大数据查询处理技术领域,尤其涉及一种基于大范围扫描的词典优化方法。


背景技术:

[0002]
近年来,随着物联网、社交网络、云计算等技术不断融入我们的生活以及现有的计算能力、存储空间、网络带宽的高速发展,人类积累的数据在互联网、通信、金融、商业、医疗等诸多领域不断地增长和累积,初步测算到2020年平均下来,一个人每天会产生1.5gb的数据,每辆车会产生4tb的数据,每架飞机会产生40tb的数据,每个小型的工厂会产生1pb的数据。
[0003]
如此巨大的数据面临的主要问题:1、在这样巨大的数据量下,如果分区过细,我们的索引产生的小文件会特别多;2、如果每次检索都需要随机扫描那么多小文件,磁盘的随机io(输入/输出)也会特别慢;3、每一次查询要打开、读取、关闭文件将近千万次,这样的打开和关闭对文件损耗也是十分大的。
[0004]
lucene是apache软件基金会jakarta项目组的一个子项目,是一个开放全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。lucene的目的是为开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索功能,或者是以此为基础建立起完整的全文检索引擎。作为一套用于全文检索和搜寻的开源程式库,lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻,就其本身而言,lucene是当前以及最近几年最受欢迎的免费java信息检索程序库,人们经常提到信息检索程序库,虽然与搜索引擎有关,但不应该将信息检索程序库与搜索引擎相混淆。这种词典优化方法的缺点包括:同一个词的很多小文件合并时也需要消耗大量的系统资源,而且存储在另一个kv(键值对)库里,也需要增加额外的入kv库时间;这样在建立索引后,索引文件会有一定的膨胀(符合条件的索引文件会膨胀一倍);需要在一定的前提条件下才能发挥优势,这样的索引文件膨胀入kv系统也会牺牲一部分的入库速度,来提升在那种词典较少的查询上的速度提升。


技术实现要素:

[0005]
本发明目的是为了克服现有技术的不足而提供一种消耗计算资源少、处理速度快且对文件损耗低的基于大范围扫描的词典优化方法。
[0006]
下面关于后续技术方案表述中涉及的专业名词解释如下:lucene是指开源的高性能、可扩展的信息检索引擎。
[0007]
kv系统是指具备键值对的数据库系统。
[0008]
tim为英文termdictionary的缩写,是指词典文件。
[0009]
doc是指一种文件数据类型。
[0010]
mb是数据大小单位。
[0011]
doclist是指获取指定文档列表。
[0012]
为达到上述目的,本发明采用了如下技术方案。
[0013]
一种基于大范围扫描的词典优化方法,具体包括步骤如下:步骤s1:首先设定一个固定筛选阀值,将tim词典中对应的doc文件小于该阀值的词全部筛选出来,而大于该阀值的doclist进行保留,将小于该阀值的定义为小文件,大于该阀值的定义为大文件;步骤s2:对所述步骤s1中筛选后文件,每间隔固定周期就将所有词的doclist进行小文件合并处理,合并完成一个大文件,同时根据各个文件位置偏移量进行记录doclist所属的分区信息;步骤s3:将所述步骤s2每个文件对应的分区偏移量信息记录在大文件的尾部,在每次获取所需文件时进行读取文件尾部位置信息来获得所有doclist的偏移量;步骤s4:将所述步骤s2合并大文件放入一个kv系统里面,kv系统进行快速读取,将随机目录的小文件进行合并后避免大量的随机磁盘数据输入或输出处理,至此完成相应词典文件优化处理,作为后续索引文件。
[0014]
作为本发明的进一步改进,所述步骤s2中的间隔固定周期为一年或一个月或一季度或半年的时间周期。
[0015]
作为本发明的进一步改进,所述步骤s1中的文件筛选阀值为1mb。
[0016]
作为本发明的进一步改进,所述步骤s2中的文件位置偏移量信息包括文件名、文件格式、序列号及文件偏移数值。
[0017]
由于上述技术方案的运用,本发明的技术方案带来的有益技术效果:本技术方案首先通过对索引文件的大小进行预先筛分,就是筛选出那些需要大量随机扫描的索引小体积文件,这样筛选分类后可以为后续处理步骤减少成千上万次的磁盘随机输入或输出操作,大大提高了读写效率;本技术方案通过将小文件合并处理,达到避免小文件读取的随机读取次数过多,降低因为文件多次被打开关闭导致的文件损坏的可能;本技术方案将小文件合并大文件后单独给予数据记录并存储在文件尾部,这样就可以在打开文件尾部读取所有的块偏移量信息,从而快速定位数据且方便读取;本技术方案的kv系统是根据key能快速拿出value的一个系统,所以我们把词记为key,当要找doclist时候可以快速通过key拿到合并后的大文件,可以通过一次顺序读取就可实现快速高效搜索的有益技术效果。
具体实施方式
[0018]
下面结合具体实施例对本发明作进一步的详细说明。
[0019]
一种基于大范围扫描的词典优化方法,具体包括步骤如下:步骤s1:首先设定一个固定筛选阀值,将tim词典中对应的doc文件小于该阀值的词全部筛选出来,而大于该阀值的doclist进行保留,将小于该阀值的定义为小文件,大于该阀值的定义为大文件;步骤s2:对所述步骤s1中筛选后文件,每间隔固定周期就将所有词的doclist进行小文件合并处理,合并完成一个大文件,同时根据各个文件位置偏移量进行记录doclist所属的分区信息;步骤s3:将所述步骤s2每个文件对应的分区偏移量信息记录在大文件的尾部,在每次获取所
需文件时进行读取文件尾部位置信息来获得所有doclist的偏移量;步骤s4:将所述步骤s2合并大文件放入一个kv系统里面,kv系统进行快速读取,将随机目录的小文件进行合并后避免大量的随机磁盘数据输入或输出处理,至此完成相应词典文件优化处理,作为后续索引文件。
[0020]
所述步骤s2中的间隔固定周期为一年或一个月或一季度或半年的时间周期;所述步骤s1中的文件筛选阀值为1mb;所述步骤s2中的文件位置偏移量信息包括文件名、文件格式、序列号及文件偏移数值。
[0021]
以上仅是本发明的具体应用范例,对本发明的保护范围不构成任何限制。凡采用等同变换或者等效替换而形成的技术方案,均落在本发明权利保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1