一种分布式搜索的方法及系统的制作方法

文档序号:8002571阅读:134来源:国知局
一种分布式搜索的方法及系统的制作方法
【专利摘要】本发明公开了一种分布式搜索的方法,包括:消息服务器层接收并保存索引服务器层实时发来的验证通过的索引请求;当实时搜索服务器层检测到所述消息服务器层接收到新的索引请求时,所述实时搜索服务器层从所述消息服务器层中提取所述索引请求,根据所述索引请求生成索引文件并进行搜索。本发明还公开了一种分布式搜索的系统,采用本发明能提供实时搜索。
【专利说明】一种分布式搜索的方法及系统

【技术领域】
[0001]本发明涉及数据库搜索领域,尤其涉及一种分布式搜索的方法及系统。

【背景技术】
[0002]一般的企业用到的搜索系统都是基于数据库的,但是随着数据量的不断增大、搜索请求的不断增加,数据库搜索已经无法满足需要。所以需要企业使用基于搜索技术的分布式搜索,其中,所述分布式搜索包括:分发服务器层接到索引请求后,把请求发给索引服务器层服务器;所述索引服务器层服务器解析接收到的索引请求生成索引文档,当所述索引文档超过预设数量后,生成索引文件目录,所述索引服务器层服务器将所述索引文件目录同步到存储服务器层;搜索服务器周期性的从所述存储服务器层获取索引文件目录,根据所述索引文件目录提供搜索服务。
[0003]但是,上述分布式搜索的过程中,由于搜索服务器中的索引文件需要从存储服务器层获取,而索引服务器层服务器中的索引文件只有达到预设数量后才会发给存储服务器层,所以从索引请求从索引服务器层经过存储服务器层到达搜索服务器的过程需要时间,而且一般最少是几分钟的时间。可见,现有技术中的分布式搜素无法提供实时搜索。


【发明内容】

[0004]有鉴于此,本发明的目的在于提供一种分布式搜索的方法及系统,能提供实时搜索。
[0005]为达到上述目的,本发明的技术方案是这样实现的:
[0006]本发明提供了一种分布式搜索的方法,该方法包括:
[0007]消息服务器层接收并保存索引服务器层实时发来的验证通过的索引请求;
[0008]当实时搜索服务器层检测到所述消息服务器层接收到新的索引请求时,所述实时搜索服务器层从所述消息服务器层中提取所述索引请求,根据所述索引请求生成索引文件并进行搜索。
[0009]上述方案中,所述消息服务器层接收并保存索引服务器层实时发来的验证通过的索引请求之前,该方法还包括:索引服务器层实时检测是否收到分发服务器层发来的索引请求,若收到,则对所述索引请求进行验证,若所述索引请求通过验证,则所述索引服务器层将所述索引请求发送给消息服务器层;否则,所述索引服务器层继续实时检测是否收到索引请求。
[0010]上述方案中,所述对索引请求进行验证时,所述方法还包括:周期性的将索引文件发送到存储服务器层;搜索服务器层周期性的从所述存储服务器层获取索引文件,并根据所述索引文件进行搜素。
[0011]上述方案中,所述当实时搜索服务器层检测到所述消息服务器层接收到新的索引请求时,所述实时搜索服务器层从所述消息服务器层中提取所述索引请求,根据所述索引请求生成索引文件并进行搜索,包括:
[0012]实时搜索服务器层实时检测所述消息服务器层是否接收到新的索引请求,若收至IJ,则从所述消息服务器层中提取所述索引请求,根据所述索引请求生成索引文件并进行搜索;否则,继续实时检测所述消息服务器层是否接收到新的索引请求。
[0013]本发明还提供了一种分布式搜索的系统,该系统包括:消息服务器层、实时搜索服务器层及索引服务器层;其中,
[0014]消息服务器层,用于接收并保存索引服务器层实时发来的验证通过的索引请求,以及为实时搜索服务器层提供保存的新的索引请求;
[0015]实时搜索服务器层,用于当检测到消息服务器层接收到新的索引请求时,从所述消息服务器层中提取所述索引请求,根据所述索引请求生成索引文件并进行搜索;
[0016]索引服务器层,用于实时将验证通过的索引请求发送给消息服务器层。
[0017]上述方案中,所述系统还包括:分发服务器层,用于向索引服务器层发送索引请求;
[0018]相应的,所述索引服务器层,还用于实时检测是否收到分发服务器层发来的索引请求,若收到,则对所述索引请求进行验证,若所述索引请求通过验证,则所述索引服务器层将所述索引请求发送给消息服务器层;否则,所述索引服务器层继续实时检测是否收到索引请求。
[0019]上述方案中,所述系统还包括:存储服务器层和搜索服务器层;其中,
[0020]存储服务器层,用于接收索引服务器层发来的索引文件;
[0021]搜索服务器层,用于周期性的从所述存储服务器层获取索引文件,并根据所述索引文件进行搜素;
[0022]相应的,所述索引服务器层周期性将索引文件发送到存储服务器层。
[0023]上述方案中,所述实时搜索服务器层,具体用于实时检测所述消息服务器层是否接收到新的索引请求,若收到,则从所述消息服务器层中提取所述索引请求,根据所述索引请求生成索引文件并进行搜索;否则,继续实时检测所述消息服务器层是否接收到新的索引请求。
[0024]本发明所提供的分布式搜索的方法及系统,能通过消息服务器层接收并保存索引服务器层实时发来的验证通过的索引请求;再由实时搜索服务器层检测到所述消息服务器层接收到新的索引请求时,提取所述索引请求,根据所述索引请求生成索引文件并进行搜索。如此,就能够实时的将索引服务器层收到的索引请求经过消息服务器发送到实时搜索服务器层,由所述实时搜索服务器层进行搜索操作,从而避免了现有技术中需要对索引文件进行累积再进行搜索而带来的实时性差的问题。

【专利附图】

【附图说明】
[0025]图1为本发明分布式搜索的方法流程示意图;
[0026]图2为本发明分布式搜索的系统组成结构示意图;
[0027]图3为本发明实施例一流程示意图;
[0028]图4为本发明实施例二中搜索服务器层组成结构示意图。

【具体实施方式】
[0029]本发明的基本思想是:消息服务器层接收并保存索引服务器层实时发来的验证通过的索引请求;当实时搜索服务器层检测到所述消息服务器层接收到新的索引请求时,所述实时搜索服务器层从所述消息服务器层中提取所述索引请求,根据所述索引请求生成索引文件并进行搜索。
[0030]下面结合附图及具体实施例对本发明再作进一步详细的说明。
[0031]本发明的分布式搜索的方法,如图1所示,包括以下步骤:
[0032]步骤101:消息服务器层接收并保存索引服务器层实时发来的验证通过的索引请求。
[0033]这里,执行步骤101之前,还包括:所述索引服务器层实时检测是否收到分发服务器层发来的索引请求,若收到,则对所述索引请求进行验证,若所述索引请求通过验证,则所述索引服务器层将所述索引请求发送给消息服务器层;否则,所述索引服务器层继续实时检测是否收到索引请求。
[0034]所述索引请求为分布式搜索架构中已有的分发服务器层下发的信息,为现有技术中规定的信息类型,这里不做赘述。
[0035]所述对索引请求进行验证的同时,还包括:索引服务器层还会按照现有技术周期性的将索引文件发送到存储服务器层,然后索引请求返回;搜索服务器层周期性的从所述存储服务器层获取索引文件,这里不做赘述。
[0036]所述分发服务器层为现有技术中分布式搜索架构中已有层,其功能可以包括:提供对外统一服务接口,接收并分发索引请求或搜索请求;统一验证请求,过滤掉错误的请求;因为索引水平分布在多台搜索机器上,需要向每一组水平分布的搜索服务器发送搜索请求并对搜索结果合并、排序。
[0037]步骤102:当实时搜索服务器层检测到所述消息服务器层接收到新的索引请求时,所述实时搜索服务器层从所述消息服务器层中提取所述索引请求,根据所述索引请求生成索引文件并进行搜索。
[0038]具体的,实时搜索服务器层实时检测所述消息服务器层是否接收到新的索引请求,若收到,则从所述消息服务器层中提取所述索引请求,根据所述索引请求生成索引文件并进行搜索;否则,继续实时检测所述消息服务器层是否接收到新的索引请求。
[0039]如图2所示,本发明提供了一种分布式搜索的系统,该系统包括:消息服务器层、实时搜索服务器层及索引服务器层;其中,
[0040]消息服务器层,用于接收并保存索引服务器层实时发来的验证通过的索引请求,以及为实时搜索服务器层提供保存的新的索引请求;
[0041]实时搜索服务器层,用于当检测到消息服务器层接收到新的索引请求时,从所述消息服务器层中提取所述索引请求,根据所述索引请求生成索引文件并进行搜索;
[0042]索引服务器层,用于实时将验证通过的索引请求发送给消息服务器层。
[0043]所述系统还包括:分发服务器层,用于向索引服务器层发送索引请求;相应的,所述索引服务器层,具体用于实时检测是否收到分发服务器层发来的索引请求,若收到,则对所述索引请求进行验证,若所述索引请求通过验证,则将所述索引请求发送给消息服务器层;否则,继续实时检测是否收到索引请求。
[0044]所述实时搜索服务器层,具体用于实时检测消息服务器层是否接收到新的索引请求,若收到,则从消息服务器层中提取所述索引请求,根据所述索引请求生成索引文件并进行搜索;否则,继续实时检测所述消息服务器层是否接收到新的索引请求。
[0045]所述索引服务器层,还用于对分发服务器层下发的索引请求进行验证,并将索引请求发送到消息服务器层;以及定期的将索引文件放到存储服务器层,然后索引请求返回。
[0046]所述系统还包括:存储服务器层和搜索服务器层;其中,存储服务器层,用于接收索引服务器层发来的索引文件;搜索服务器层,用于周期性的从所述存储服务器层获取索引文件,并根据所述索引文件进行搜素;相应的,所述索引服务器层周期性将索引文件发送到存储服务器层。
[0047]实施例一、
[0048]实时搜索服务器层的操作流程如图3所示,包括:
[0049]步骤301:实时监听消息服务器层,若消息服务器层收到新的索引请求,则实时搜索服务器会立刻获取所述消息服务器层有索引请求的情况。
[0050]步骤302:利用所述索引请求在内存中生成索引目录。
[0051]这里,所述生成索引目录的时间非常短(因为只存放几分钟内的索引数据,可以在I秒内生成内存索引目录)。
[0052]步骤303:利用所述索引目录进行搜索。
[0053]实施例二、
[0054]本发明提供的分布式搜索的架构可以包括:分发服务器层、索引服务器层、搜索服务器层、实时搜索服务器层、存储服务器层和消息服务器层;其中,
[0055]分发服务器层,用于提供对外统一服务接口,接收并分发索引请求给索引服务器层,或接收并分发搜索请求给搜索服务器;统一验证请求,过滤掉错误的请求;因为索引水平分布在多台搜索机器上,需要向搜索服务器层中每一组水平分布的搜索服务器发送搜索请求并对搜索结果合并及排序;
[0056]索引服务器层,用于将分发服务器层发来的索引请求发送到内部任意一台索引服务器对索引请求进行验证,并将验证通过的索引请求发送到消息服务器层;以及周期性的将索引文件发送给存储服务器,并把索引请求返回;
[0057]搜索服务器层,用于提供从存储服务器同步索引和搜索服务;
[0058]实时搜索服务器层,用于当检测到消息服务器层接收到新的索引请求时,从所述消息服务器层中提取所述索引请求,根据所述索引请求生成索引文件并进行搜索;
[0059]存储服务器层,用于存储索引文件作为索引服务器层和搜索服务器的存储桥梁。
[0060]消息服务器层,为消息总线,用于为搜索服务器层实时提供索引请求。
[0061]所述搜索服务器层如图4所示,包括:一台或多台搜索服务器;其中,水平方向的每一组搜索服务器都对应不同的索引文件,达到索引文件可以水平无限扩展;垂直方向的每一组搜索服务器都存在着同样的索引文件,返回同样的搜索结果,提高并发访问能力;水平和垂直方向无限扩展保障了系统的可扩展性和高并发访问能力。
[0062]所述索引服务器层,用于根据配置文件中索引目录的大小,发任意一个索引目录大小达到配置的上限值时,立刻创建一个新索引目录。
[0063]以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
【权利要求】
1.一种分布式搜索的方法,其特征在于,该方法包括: 消息服务器层接收并保存索引服务器层实时发来的验证通过的索引请求; 当实时搜索服务器层检测到所述消息服务器层接收到新的索引请求时,所述实时搜索服务器层从所述消息服务器层中提取所述索引请求,根据所述索引请求生成索引文件并进行搜索。
2.根据权利要求1所述的方法,其特征在于,所述消息服务器层接收并保存索引服务器层实时发来的验证通过的索引请求之前,该方法还包括: 索引服务器层实时检测是否收到分发服务器层发来的索引请求,若收到,则对所述索引请求进行验证,若所述索引请求通过验证,则所述索引服务器层将所述索引请求发送给消息服务器层; 否则,所述索引服务器层继续实时检测是否收到索引请求。
3.根据权利要求2所述的方法,其特征在于,所述对索引请求进行验证时,所述方法还包括: 周期性的将索引文件发送到存储服务器层; 搜索服务器层周期性的从所述存储服务器层获取索引文件,并根据所述索引文件进行搜素。
4.根据权利要求1所述的方法,其特征在于,所述当实时搜索服务器层检测到所述消息服务器层接收到新的索引请求时,所述实时搜索服务器层从所述消息服务器层中提取所述索引请求,根据所述索引请求生成索引文件并进行搜索,包括: 实时搜索服务器层实时检测所述消息服务器层是否接收到新的索引请求,若收到,则从所述消息服务器层中提取所述索引请求,根据所述索引请求生成索引文件并进行搜索;否则,继续实时检测所述消息服务器层是否接收到新的索引请求。
5.—种分布式搜索的系统,其特征在于,该系统包括:消息服务器层、实时搜索服务器层及索引服务器层;其中, 消息服务器层,用于接收并保存索引服务器层实时发来的验证通过的索引请求,以及为实时搜索服务器层提供保存的新的索引请求; 实时搜索服务器层,用于当检测到消息服务器层接收到新的索引请求时,从所述消息服务器层中提取所述索引请求,根据所述索引请求生成索引文件并进行搜索; 索引服务器层,用于实时将验证通过的索引请求发送给消息服务器层。
6.根据权利要求5所述的系统,其特征在于,所述系统还包括:分发服务器层,用于向索引服务器层发送索引请求; 相应的,所述索引服务器层,还用于实时检测是否收到分发服务器层发来的索引请求,若收到,则对所述索引请求进行验证,若所述索引请求通过验证,则所述索引服务器层将所述索引请求发送给消息服务器层;否则,所述索引服务器层继续实时检测是否收到索引请求。
7.根据权利要求6所述的系统,其特征在于,所述系统还包括:存储服务器层和搜索服务器层;其中, 存储服务器层,用于接收索引服务器层发来的索引文件; 搜索服务器层,用于周期性的从所述存储服务器层获取索引文件,并根据所述索引文件进行搜素; 相应的,所述索引服务器层周期性将索引文件发送到存储服务器层。
8.根据权利要求5所述的系统,其特征在于, 所述实时搜索服务器层,具体用于实时检测所述消息服务器层是否接收到新的索引请求,若收到,则从所述消息服务器层中提取所述索引请求,根据所述索引请求生成索引文件并进行搜索;否则,继续实时检测所述消息服务器层是否接收到新的索引请求。
【文档编号】H04L29/08GK104298692SQ201310306833
【公开日】2015年1月21日 申请日期:2013年7月19日 优先权日:2013年7月19日
【发明者】陈昌 申请人:深圳中兴网信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1