一种创建索引文件的方法及装置的制造方法

文档序号:9727400阅读:488来源:国知局
一种创建索引文件的方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,特别是涉及一种创建索引文件的方法及装置。
【背景技术】
[0002]全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。
[0003]检索主要分为按字检索和按词检索两种。按字检索是指对于文章中的每一个字都建立索引,检索时将词分解为字的组合。对于各种不同的语言而言,字有不同的含义,比如英文中字与词实际上是合一的,而中文中字与词有很大分别。按词检索指对文章中的词,即语义单位建立索引,检索时按词检索,并且可以处理同义项等。英文等西方文字由于按照空白切分词,因此实现中与按字处理类似,添加同义处理也很容易。中文等东方文字则需要切分字词,以达到按词索引的目的,关于这方面的问题,是当前全文检索技术尤其是中文全文检索技术中的难点。
[0004]全文检索系统是按照全文检索理论建立起来的用于提供全文检索服务的软件系统。一般来说,全文检索需要具备建立索引和提供查询的基本功能,此外现代的全文检索系统还需要具有方便的用户接口、二次应用开发接口等等。功能上,全文检索系统核心具有建立索引、处理查询返回结果集、增加索引、优化索引结构等功能。
[0005]Lucene是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。
[0006]Lucene特殊的索引结构,决定了其只能使用一个IndexWriter对索引进行添加操作。这样对于大数据量的索引,如果无法实现并行创建索引,索引的过程将十分耗时。

【发明内容】

[0007]本发明的目的是提供一种创建索引文件的方法及装置,目的在于解决当索引数据规模较大时,现有的索引方法索引效率较低的问题。
[0008]为解决上述技术问题,本发明提供一种创建索引文件的方法,包括:
[0009]根据数据规模以及业务需求,确定执行索引创建的线程数量;
[0010]通过所述数据规模以及所述线程数量,确定各个线程分别负责进行索引的数据范围;
[0011]各个线程分别创建对应数据范围的索引文件;
[0012]将各个所述线程创建的所述索引文件进行合并,存储于一个索引目录中。
[0013]可选地,所述将各个所述线程创建的所述索引文件进行合并,存储于一个索引目录中包括:
[0014]当各个线程的索引文件创建执行完成后,将各个所述线程创建的所述索引文件进行合并,存储于一个索引目录中。
[0015]可选地,所述各个线程分别创建对应数据范围的索引文件包括:
[0016]各个线程分别创建的索引文件互相独立,不会引发锁重叠异常。
[0017]本发明还提供了一种创建索引文件的装置,包括:
[0018]第一确定模块,用于根据数据规模以及业务需求,确定执行索引创建的线程数量;
[0019]第二确定模块,用于通过所述数据规模以及所述线程数量,确定各个线程分别负责进行索引的数据范围;
[0020]创建模块,用于各个线程分别创建对应数据范围的索引文件;
[0021 ]存储模块,用于将各个所述线程创建的所述索引文件进行合并,存储于一个索引目录中。
[0022]可选地,所述存储模块具体用于:
[0023]当各个线程的索引文件创建执行完成后,将各个所述线程创建的所述索引文件进行合并,存储于一个索引目录中。
[0024]可选地,所述创建模块具体用于:
[0025]各个线程分别创建的索引文件互相独立,不会引发锁重叠异常。
[0026]本发明所提供的创建索引文件的方法及装置,根据数据规模以及业务需求,确定执行索引创建的线程数量;然后通过数据规模以及线程数量,确定各个线程分别负责进行索引的数据范围;各个线程分别创建对应数据范围的索引文件;将各个线程创建的所述索引文件进行合并,存储于一个索引目录中。本发明所提供的创建索引文件的方法及装置,采用多线程并行创建索引的方式,提高了索引的效率。
【附图说明】
[0027]图1为本发明所提供的创建索引文件的方法的一种【具体实施方式】的流程图;
[0028]图2为本发明所提供的创建索引文件的方法的另一种【具体实施方式】的流程图;
[0029]图3为本发明实施例提供的创建索引文件的装置的结构框图。
【具体实施方式】
[°03°]在当前的企业全文检索应用领域,基于Lucene的全文检索引擎非常适合处理高并发、低延迟的的查询需求。Lucene的索引是一个写独占、读共享的结构,这意味着,在使用多线程进行添加索引时,性能并不会得到明显的提升,所以任何时刻只能有一个线程对索引进行写入操作,如果同一时刻有多个不同IndexWriter对索引进行写入操作,那么将会引发锁重叠异常,所以Lucene的特殊的索引结构,决定了其只能使用一个IndexWriter对索引进行添加操作。这样对于大数据量的索引,如果无法实现并行创建索引,索引的过程将十分耗时。鉴于此,本发明的核心是提供一种可并发创建索引文件的方法及装置。
[0031]为了使本技术领域的人员更好地理解本发明方案,下面结合附图和【具体实施方式】对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0032]本发明所提供的创建索引文件的方法的一种【具体实施方式】的流程图如图1所示,该方法包括:
[0033]步骤S101:根据数据规模以及业务需求,确定执行索引创建的线程数量;
[0034]步骤S102:通过所述数据规模以及所述线程数量,确定各个线程分别负责进行索引的数据范围;
[0035]步骤S103:各个线程分别创建对应数据范围的索引文件;
[0036]步骤S104:将各个所述线程创建的所述索引文件进行合并,存储于一个索引目录中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1