基于云计算的数据搜索方法技术

技术编号:14123809 阅读:112 留言:0更新日期:2016-12-09 10:37
本发明专利技术提供了一种基于云计算的数据搜索方法,该方法包括:将多个文档组成基本索引,运行于HDFS的DataNode上;在HDFS的NameNode上建立增量索引和差分索引,分别用于保存新增的索引项和待删除索引项;根据预定义策略对索引项数据进行压缩编码。本发明专利技术提出了一种基于云计算的数据搜索方法,利用搜索词的特征表示理解用户意图,并通过改进的索引机制提高了搜索引擎的效率,增强了用户体验。

【技术实现步骤摘要】

本专利技术涉及数据搜索,特别涉及一种基于云计算的数据搜索方法
技术介绍
随着互联网的发展,搜索引擎要处理的数据量越来越大,对搜索引擎的性能要求越来越高。高效的针对用户的搜索词,可以挖掘出一些潜在的用户意图,其中根据搜索词的分类可以得知用户想搜索到哪个领域的结果,针对用户意图及这个领域的特点可以给用户推荐满足用户需求的应用,来优化搜索结果。为了提高信息检索效率,信息检索系统一般都采用基于云的并行计算平台和索引技术。索引的结构设计、存储方式、检索操作和动态更新算法对信息检索的效率有很大的影响。然而,现有技术的搜索引擎对搜索词的处理不够完善,没有特别对用户意图进行有效预测。并且在索引处理上,索引的添加需要将新增的记录与原有的索引的相同项合并。在HDFS中这项操作需要重新创建块。每个DataNode上的副本信息也需要更新。而且在索引中的删除内容只能删除整个块,并产生大量的I/O通信,浪费大量的时间和资源。
技术实现思路
为解决上述现有技术所存在的问题,本专利技术提出了一种基于云计算的数据搜索方法,包括:将多个文档组成基本索引,运行于HDFS的DataNode上;在HDFS的NameNode上建立增量索引和差分索引,分别用于保存新增的索引项和待删除索引项;根据预定义策略对索引项数据进行压缩编码。优选地,所述文档由多个索引项构成,每个索引项包含一个检索词和多个文件列表,文件列表由文件ID和该检索词在这个文档中出现的次数和位置信息构成,基本索引文件保存在HDFS中,被分块后存储于集群中不同的DataNode;差分索引包括无效文档列表,记录所有文档库中要被删除的文档ID,响应检索请求时,根据该列表从检索结果中过滤掉该列表中的所有ID对应的文件;差分索引在文档库中有文件被删除时生成,当差分索引文件达到一定阈值时,系统根据该差分索引文件更新基本索引;当文件库中有新增文件时,由该文件生成一条独立增量索引,独立索引用于记录一个文档中出现的所有检索词在该文档中出现的信息;当独立索引的数量到达一定的阈值,触发合并过程,将所有独立索引合并为一个整体,即一个增量索引;当增量索引的数量达到一定阈值时,触发合并操作将多个增量索引合并到基本索引中;索引结构中,将词库中的词按频率划分为高频词和低频词,对不同频率的词采用不同的方式存储在NameNode内存中,以散列表的形式组织;对于高频词,每个词用一个独立的文件保存其索引,对于低频词,将多个检索词的表保存到同一个文件中;通过散列函数将每一个高频词的索引信息映射到独立的文件中,并将多个低频词的索引信息映射到一个文件中;检索时根据词的频率属性,采用不同的方式进行分布式检索;设置索引项的结构如下:<wordid,docnum,<docid,freq,<p1,p2,...,pn>>,...,<docid,freq,<p1,p2,...pn>>>Wordid表示检索词,docnum代表检索词wordid在docnum个文档中出现过;后面为docnum个Doclist,每个Doclist表示wordid在一个文件中出现的次数和位置信息;Docid代表该检索词出现的一个文件编号,freq表示检索词在这个文件中出现的次数,随后是一个长度为freq的列表,表示检索词每次出现的位置信息;上述结构中存在两个递增的列表:递增的文档ID号:(doc1,doc2,doc3,...,docn);递增的位置信息序列:(p1,p2,p3,...,pn);保留序列中的第一项,后面的每一项用它与前一项的差值来代替;处理之后的序列为:文档ID差值序列:(doc1,doc2-doc1,doc3-doc2...,docn-docn-1);—个文件中位置差值序列:(p1,p2-p1,p3-p2...,pn-pn-1)。优选地:当搜索引擎抓取到一定数量的网页本地文本库之后,对抓取的文本文件进行预处理,然后按以下过程建立索引:步骤l.对抓取到的文本进行分词,然后将分词后的文件存放到HDFS的各个DataNode中;步骤2.创建一个MapReduce的作业处理器,负责控制建立作业的执行;步骤3.作业处理器创建map任务,map任务运行在DataNode上,每个分块中的文档分别进行处理,产生中间文件;步骤4.map任务执行完后,多个reduce任务开始执行,将map任务产生的中间文件合并,生成索引文件;步骤5.根据检索词的频率属性和在词库中的词频排序,采用以下散列函数,将不同的检索词的索引保存到不同文件;其中,通过散列函数将每一个高频词的索引信息映射到独立的文件中,进一步包括:将散列函数表示为SHA1(f(r)),将低频词的频率排序作为函数的输入,输出保存该词索引的文件名;r是该检索词在词库中词频排序,f(r)将多个检索词根据词频排序映射到一个正整数值,表达为: f ( r ) = r - r % ( 10 * α ) N < r ≤ 10 N r - r % ( 20 * α ) 10 N < r ≤ 50 N r - r % ( 40 本文档来自技高网...
基于云计算的数据搜索方法

【技术保护点】
一种基于云计算的数据搜索方法,其特征在于,包括:将多个文档组成基本索引,运行于HDFS的DataNode上;在HDFS的NameNode上建立增量索引和差分索引,分别用于保存新增的索引项和待删除索引项;根据预定义策略对索引项数据进行压缩编码。

【技术特征摘要】
1.一种基于云计算的数据搜索方法,其特征在于,包括:将多个文档组成基本索引,运行于HDFS的DataNode上;在HDFS的NameNode上建立增量索引和差分索引,分别用于保存新增的索引项和待删除索引项;根据预定义策略对索引项数据进行压缩编码。2.根据权利要求1所述的方法,其特征在于,所述文档由多个索引项构成,每个索引项包含一个检索词和多个文件列表,文件列表由文件ID和该检索词在这个文档中出现的次数和位置信息构成,基本索引文件保存在HDFS中,被分块后存储于集群中不同的DataNode;差分索引包括无效文档列表,记录所有文档库中要被删除的文档ID,响应检索请求时,根据该列表从检索结果中过滤掉该列表中的所有ID对应的文件;差分索引在文档库中有文件被删除时生成,当差分索引文件达到一定阈值时,系统根据该差分索引文件更新基本索引;当文件库中有新增文件时,由该文件生成一条独立增量索引,独立索引用于记录一个文档中出现的所有检索词在该文档中出现的信息;当独立索引的数量到达一定的阈值,触发合并过程,将所有独立索引合并为一个整体,即一个增量索引;当增量索引的数量达到一定阈值时,触发合并操作将多个增量索引合并到基本索引中;索引结构中,将词库中的词按频率划分为高频词和低频词,对不同频率的词采用不同的方式存储在NameNode内存中,以散列表的形式组织;对于高频词,每个词用一个独立的文件保存其索引,对于低频词,将多个检索词的表保存到同一个文件中;通过散列函数将每一个高频词的索引信息映射到独立的文件中,并将多个低频词的索引信息映射到一个文件中;检索时根据词的频率属性,采用不同的方式进行分布式检索;设置索引项的结构如下:<wordid,docnum,<docid,freq,<p1,p2,...,pn>>,...,<docid,freq,<p1,p2,...pn>>>Wordid表示检索词,docnum代表检索词wordid在docnum个文档中出现过;后面为docnum个Doclist,每个Doclist表示wordid在一个文件中出现的次数和位置信息;Docid代表该检索词出现的一个文件编号,freq表示检索词在这个文件中出现的次数,随后是一个长度为freq的列表,表示检索词每次出现的位置信息;上述结构中存在两个递增的列表:递增的文档ID号:(doc1,doc2,doc3,...,docn);递增的位置信息序列:(p1,p2,p3,...,pn);保留序列中的第一项,后面的每一项用它与前一项的差值来代替;处理之后的序列为:文档ID差值序列:(doc1,doc2-doc1,doc3-doc2...,docn-docn-1);—个文件中位置差值序列:(p1,p2-p1,p3-p2...,pn-pn-1)。3.根据权利要求2所述的方法,其特征在于,还包括:当搜索引擎抓取到一定数量的网页本地文本库之后,对抓取的文本文件进行预处理,然后按以下过程建立索引:步骤l.对抓取到的文本进行分词,然后将分词后的文件存放到HDFS的各个DataNode中;步骤2.创建一个MapReduce的作业处理器,负责控制建立作业的执行;步骤3.作业处理器创建map任务,map任务运行在DataNode上,每个分块中的文档分别进行处理,产生中间文件;步骤4.map任务执行完后,多个reduce任务开始执行,将map任务产生的中...

【专利技术属性】
技术研发人员:赖真霖文君
申请(专利权)人:成都四象联创科技有限公司
类型:发明
国别省市:四川;51

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

1