一种数据搜索的方法及装置的制造方法_3

文档序号:8498701阅读:来源:国知局
志文件,并以追加的方式写入。
[0116]实施例七
[0117]参考图7,图7是本发明数据搜索的装置的功能模块示意图。
[0118]在实施例七中,所述数据搜索的装置包括:
[0119]采集模块、数据接收模块、索引更新模块、搜索合并模块、索引合并模块、存储模块。
[0120]如图7所示,采集模块用于采集数据,对采集的数据类型进行判别,采集数据类型为搜索数据,则将数据提交给搜索合并模块;若采集数据类型为索引数据,则将数据提交给索引更新模块。
[0121]搜索合并模块用于对搜索请求数据进行逻辑处理(与、或、非等),对搜索数据进行分词处理,获取搜索关键词组合,根据关键词组合请求索引合并模块,索引合并模块将搜索结构返回给搜索合并模块,搜索合并模块将结果进行一定的合并。
[0122]数据接收模块用于将采集模块传过来索引数据由数据接收模块采用写日志的方式写入专属内存区,数据接收模块按照一定的机制(时间间隔、日志大小)将数据刷入存储模块,存储模块中存储着对应的日志文件,并且以追加的方式写入。
[0123]索引更新模块用于从数据接收模块接收已存储的需索引数据,将索引数据建立索弓丨,存储到内存中的索引A区,当内存索引A区的大小达到阈值,则将内存索引A区的数据拷贝到索引B区,并将内存索引B区的索引刷入存储空间中,以子索引形式切区分于全量索引存储。
[0124]索引合并模块用于当合并索引的数量增加时,将合并索引与全量索引进行合并,生成相关的合并任务。将合并任务提交给分布式计算集群进行合并索引和全量索引的合并,合并后的新的全量索引存储到存储模块中,监控现在对于旧的全量索引的搜索任务,将新的搜索任务连接到新的全量索引,等待旧的全量索引上的搜索任务的完成,新的全量索引平滑切换旧的全量索引,当全量索引切换完成,删除旧的全量索引,新的全量索引开始全面对外提供搜索任务。
[0125]其中,实时搜索的搜索装置从多个方面保证了搜索的性能,满足应用的接近实时的搜索效果。
[0126]数据接收模块可以先将大量索引数据进行缓存,然后由索引更行模块进行消费,这样在实时数据量过大的情况下缓解了索引更新模块的压力,从而提高了整个装置的可用性。
[0127]索引更新模块中通过内存索引A区和内存索引B区的方法避免了索引写入存储模块过于频繁,内存索引A区负责接收实时产生的索引,索引B区则负责将索引写入存储模块,只有达到一定的阈值,才会将内存索引A区的数据拷贝至索引B区。这种方法避免了磁盘1的拥堵问题,避免搜索任务的性能极速下降的问题。
[0128]索引合并模块则通过采用分布式计算框架(hadoop)进行合并索引和全量索引的合并任务,由于合并任务需要达到一定的时间才会运行,从而很好的减少了索引切换的影响,合并后索引碎片减少,提尚了搜索性能。
[0129]搜索合并模块会将搜索请求会对全量索引和合并索引同时进行搜索,从而保证了搜索的实时性。
[0130]以上结合具体实施例描述了本发明实施例的技术原理。这些描述只是为了解释本发明实施例的原理,而不能以任何方式解释为对本发明实施例保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明实施例的其它【具体实施方式】,这些方式都将落入本发明实施例的保护范围之内。
【主权项】
1.一种数据搜索的方法,其特征在于,所述方法包括: 建立采集的索引数据的刷入索引; 根据预设的第一算法合并所述刷入索引,生成合并索引; 将所述合并索引与当前的全量索引根据预设的第二算法进行合并,生成新的全量索弓I,所述新的全量索引用于用户进行数据搜索。
2.根据权利要求1所述的方法,其特征在于,所述根据预设的第一算法合并所述刷入索引,生成合并索引,包括: 将所述刷入索引存储到内存的索引A区; 当存入到所述索引A区的刷入索引的大小达到预设的第一阈值时,则将所述索引A区的刷入索引的数据复制到内存的索引B区; 当存入到所述索引B区的刷入索引的大小达到预设的第二阈值时,则将所述索引B区的刷入索引的数据写入存储模块中。
3.根据权利要求1所述的方法,其特征在于,所述将所述合并索引与当前的全量索引根据预设的第二算法进行合并,生成新的全量索引,包括: 将所述合并索引与当前的全量索引进行合并,生成新的全量索引和新的合并任务,建立所述新的全量索引和所述新的合并任务的连接; 将所述新的全量索引存储到存储模块中,监控是否完成所述当前全量索引对应的搜索任务; 在监控到已完成所述当前全量对应的搜索任务后,删除所述当前全量索引。
4.根据权利要求1至3任意一项所述的方法,其特征在于,所述方法在建立采集的索引数据的刷入索引之前,还包括: 对采集的数据的类型进行判别; 若采集的数据的类型为搜索数据时,则获取所述搜索数据中的关键词组合,搜索所述关键词组合对应的数据内容,并将所述数据内容进行合并后发送给用户; 若采集的数据的类型为索引数据时,则执行建立采集的索引数据的刷入索引的步骤。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括: 将采集的索引数据以写日志的方式写入预设的内存区,将所述日志写入存储模块。
6.一种数据搜索的装置,其特征在于,所述装置包括: 建立单元,用于建立采集的索引数据的刷入索引; 第一生成单元,用于根据预设的第一算法合并所述刷入索引,生成合并索引; 第二生成单元,用于将所述合并索引与当前的全量索引根据预设的第二算法进行合并,生成新的全量索引,所述新的全量索引用于用户进行数据搜索。
7.根据权利要求6所述的装置,其特征在于,所述第一生成单元,用于: 将所述刷入索引存储到内存的索引A区; 当存入到所述索引A区的刷入索引的大小达到预设的第一阈值时,则将所述索引A区的刷入索引的数据复制到内存的索引B区; 当存入到所述索引B区的刷入索引的大小达到预设的第二阈值时,则将所述索引B区的刷入索引的数据写入存储模块中。
8.根据权利要求6所述的装置,其特征在于,所述第二生成单元,用于: 将所述合并索引与当前的全量索引进行合并,生成新的全量索引和新的合并任务,建立所述新的全量索引和所述新的合并任务的连接; 将所述新的全量索引存储到存储模块中,监控是否完成所述当前全量索引对应的搜索任务; 在监控到已完成所述当前全量对应的搜索任务后,删除所述当前全量索引。
9.根据权利要求6至8任意一项所述的装置,其特征在于,所述装置还包括: 判别单元,用于对采集的数据的类型进行判别; 搜索单元,用于若采集的数据的类型为搜索数据时,则获取所述搜索数据中的关键词组合,搜索所述关键词组合对应的数据内容,并将所述数据内容进行合并后发送给用户; 建立单元,用于若采集的数据的类型为索引数据时,则执行建立采集的索引数据的刷入索引。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括: 写入单元,用于将采集的索引数据以写日志的方式写入预设的内存区,将所述日志写入存储模块。
【专利摘要】本发明实施例公开了一种数据搜索的方法及装置,通过建立采集的索引数据的刷入索引;根据预设的第一算法合并所述刷入索引,生成合并索引;将所述合并索引与当前的全量索引根据预设的第二算法进行合并,生成新的全量索引,所述新的全量索引用于用户进行数据搜索,从而实现对大量的数据进行实时索引时,会造成大量的索引文件碎片,通过分布式计算对索引碎片与全量索引进行合并,降低了索引碎片对搜索性能的影响。
【IPC分类】G06F17-30
【公开号】CN104820693
【申请号】CN201510208340
【发明人】陈红
【申请人】广东小天才科技有限公司
【公开日】2015年8月5日
【申请日】2015年4月28日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1