一种分布式搜索引擎系统及ID映射表扩充方法
技术领域
本发明涉及搜索引擎技术,具体地说,是涉及一种分布式搜索引擎系统及ID(Identifier,标识符)映射表扩充方法。
背景技术
在面对海量数据的分布式搜索引擎系统中,需要对输入的文本信息进行分析,从而提取出其中的切分单元。为了提高搜索引擎系统的检索性能,每个切分单元被提出之后,与一个的文本ID建立映射关系,在后续的内部处理中,都以这个文本ID作为切分单元的唯一标识。
然而,往往搜索引擎系统在运行过程中将会发现很多新切分单元(即ID映射表中没有的切分单元),而这些新切分单元又不能随时动态的被编入索引。由于ID映射表的规模将决定系统能够检索的信息的多少,因此,这种在搜索过程中不能被动态更新的ID映射表,将影响搜索速度和搜索质量。
发明内容
本发明所要解决的技术问题是提供一种分布式搜索引擎系统及ID映射表扩充方法,在分布式搜索引擎系统中实现对ID映射表的即时动态更新。
为解决上述技术问题,本发明提供方案如下:
一种分布式搜索引擎系统,包括:至少一个文本切分子系统,其中,每个文本切分子系统包括:切分模块、ID映射模块及ID映射表存储模块,切分模块接收从互联网抓取的源文本,并从源文本中提取出切分单元,传送至ID映射模块,ID映射模块查找ID映射表存储模块中的ID映射表中与切分单元对应的文本ID,并将其填入切分单元信息中,其中,所述文本切分子系统还包括:
新词统计表存储模块,用于保存由ID映射模块查找ID映射表存储模块中的ID映射表时未在ID映射表中查找到的新切分单元及其出现的次数值构成的新词统计表;
以及,切分子系统收发模块:用于从新词统计表存储模块中获取新词统计表,并在ID映射表存储模块中的ID映射表中建立新切分单元与文本ID的映射关系,清除新词统计表存储模块中的新词统计表中已在ID映射表中建立文本ID映射关系的切分单元及其出现次数值;
所述ID映射模块,进一步用于向新词统计表存储模块中的新词统计表中统计在ID映射表中未查找到的切分单元及其出现的次数值。
本发明所述的系统,其中,所述切分子系统收发模块进一步包括:定时单元,用于计时,当定时计数值到达预设值,从新词统计表存储模块中获取新词统计表。
本发明所述的系统,其中,所述切分子系统收发模块进一步包括比较单元,用于从新词统计表存储模块中获取新词统计表中保存的切分单元的出现次数值,并与门限值进行比较,将出现次数值超出门限值的切分单元从新词统计表中取出。
本发明所述的系统,其中,还进一步包括一个ID映射表管理子系统,用于从各个切分子系统收发模块获取所述每个文本切分子系统中的新词统计表,并进行汇总统计产生新词统计汇总表,为新词统计汇总表中每个新切分单元分配唯一文本ID并产生ID映射扩展表,将其发送至所有文本切分子系统中的切分子系统收发模块,由各个切分子系统收发模块将ID映射扩展表发送至ID映射表存储模块对ID映射表进行扩展更新。
本发明所述的系统,其中,所述ID映射表管理子系统进一步包括:管理子系统收发模块、新词统计汇总表存储模块、ID映射表扩充模块及ID映射扩展表存储模块;其中,
管理子系统收发模块:用于从各个切分子系统收发模块获取相应的新词统计表,并发送至新词统计汇总表存储模块;统计汇总完毕后,通知ID映射表扩充模块;以及从ID映射扩展表存储模块中获取ID映射扩展表并发送至各个切分子系统收发模块;
新词统计汇总表存储模块:用于汇总统计并保存由管理子系统收发模块发送来的各个文本切分子系统中的新词统计表;
ID映射表扩充模块:用于接收到管理子系统收发模块发送来的新词统计汇总表统计汇总完毕的通知后,从新词统计汇总表存储模块中获取新词统计汇总表中的新切分单元,建立唯一文本ID映射关系并加入到ID映射扩展表存储模块中的ID映射扩展表中,并在新词统计汇总表存储模块中的新词统计汇总表中删除已获取的新切分单元及其出现次数值;以及处理完新词统计汇总表中的所有汇总的新切分单元,通知管理子系统收发模块ID映射扩展表更新完毕。
ID映射扩展表存储模块:用于保存从ID映射表扩充模块发送来的新切分单元到文本ID的映射关系的ID映射扩展表。
本发明所述的系统,其中,所述管理子系统收发模块进一步包括定时单元,用于计时,当定时计数值到达预设值,从各个切分子系统收发模块获取相应的新词统计表。
本发明所述的系统,其中,所述ID映射表扩充模块进一步包括比较单元,用于从新词统计汇总表存储模块中获取新词汇总统计表中保存的新切分单元的出现次数值,并与门限值进行比较,将出现次数值超出门限值的新切分单元从新词汇总统计表中取出。
一种ID映射表扩充方法,用于具有至少一个文本切分子系统的分布式搜索引擎系统,包括如下步骤:
1、每个文本切分子系统分别统计在各自ID映射表中无对应文本ID映射关系的新切分单元,
2、每个文本切分子系统为统计得到的每个新切分单元分别分配唯一的文本ID,建立映射关系,然后各自更新ID映射表。
本发明所述的方法,其中,所述步骤2,是每个文本切分子系统为统计得到的每个新切分单元分别分配唯一的文本ID,并建立映射关系,然后各自定时更新ID映射表。
本发明所述的方法,其中,所述步骤2,是在每个文本切分子系统中,当所统计得到的新切分单元的出现次数超过门限值时,为所述出现次数超过门限值的每个新切分单元分别分配唯一的文本ID,并建立映射关系,然后各自更新ID映射表。
本发明所述的方法,其中,所述步骤2进一步包括如下步骤:
2-1、将每个文本切分子系统统计得到的新切分单元进行汇总,
2-2、为汇总后的每个新切分单元分配唯一的文本ID,并建立映射关系,然后分别更新每个文本切分子系统中ID映射表。
本发明所述的方法,其中,所述步骤2-1,是定时地将每个文本切分子系统获得的新切分单元进行汇总。
本发明所述的方法,其中,所述步骤2-2,是为汇总后的新切分单元中出现次数超过门限值的每个新切分单元分别分配唯一的文本ID,并建立映射关系,然后分别更新每个文本切分子系统中ID映射表。
本发明所述系统及方法,通过在每个文本切分子系统中分别统计新出现的切分单元并更新ID映射表,实现了每个文本切分子系统中对ID映射表的即时动态更新;又进一步通过增加的ID映射表管理子系统,对每个文本切分子系统中所统计出的新出现的切分单元进行汇总,统计出统一的映射关系,并发送至所有文本切分子系统,来统一更新每个文本切分子系统中的ID映射表,实现了搜索引擎系统中全局一致的文本ID分配,即在实现ID映射表即时动态更新的同时,又确保了在不同服务器上的ID映射表的一致性,使得该分布式搜索引擎系统能够提高搜索速度及搜索质量,从而增加搜索的可靠性。
本发明所要解决的技术问题、技术方案要点及有益效果,将结合实施例,参照附图作进一步说明。
附图说明
图1为本发明实施例所述系统的结构示意图;
图2为本发明另一实施例所述系统的结构示意图;
图3为本发明实施例所述方法的流程图;
图4为本发明另一实施例所述方法的流程图。
具体实施方式
参照图1,本发明实施例所述分布式搜索引擎系统,包括:文本切分子系统1至N,N≥1,其中,每个文本切分子系统包括:切分模块10、ID映射模块20、ID映射表存储模块30,新词统计表存储模块40,以及切分子系统收发模块50。
其中,切分模块10,用于在面对海量数据的搜索引擎系统中,从互联网上抓取的源文本,并从源文本中提取出切分单元,将提取出的切分单元发送至ID映射模块20;
ID映射表存储模块30,用于保存从切分单元到文本ID之间一一对应关系的ID映射表,供ID映射模块查找;
ID映射模块20,用于接收切分模块10输出的切分单元,负责在ID映射表存储模块30中的ID映射表中查找每一个切分单元所对应的文本ID,并将查找到文本ID填入切分单元信息中;对于那些没有在ID映射表中找到的新切分单元,ID映射模块要在新词统计表存储模块中的新词统计表中查找这一切分单元,并在找到后将其出现的次数值加1,然后将这一切分单元丢弃。如果在新词统计表中也没有找到,就在新词统计表中创建一组用于存储新切分单元及其出现次数值的新表项,并将其出现次数值置为1,然后再将其丢弃;
新词统计表存储模块40,用于保存由ID映射模块查找ID映射表存储模块中的ID映射表时未在ID映射表中查找到的新切分单元及其出现的次数值构成的新词统计表;
切分子系统收发模块50:用于从新词统计表存储模块中获取新词统计表,并在ID映射表存储模块中的ID映射表中建立新切分单元与文本ID的映射关系,清除新词统计表存储模块中的新词统计表中已在ID映射表中建立文本ID映射关系的切分单元及其出现次数值。这里,所述切分子系统收发模块50中还可以增加一个定时单元(图中未示出),用于计时,当定时计数值到达预设值,从新词统计表存储模块中获取新词统计表。或者,可以增加一个比较单元(图中未示出),用于从新词统计表存储模块中获取新词统计表中保存的新切分单元的出现次数值,并与门限值进行比较,将出现次数值超出门限值的新切分单元从新词统计表中取出。
参照图2,为本发明另一实施例所述分布式搜索引擎系统,包括:至少一个文本切分子系统1至N,以及一个ID映射表管理子系统100。
其中,所述每个文本切分子系统包括:切分模块10、ID映射模块20、ID映射表存储模块30,新词统计表存储模块40,以及切分子系统收发模块50。
所述ID映射表管理子系统100,用于从各个切分子系统收发模块获取所述每个文本切分子系统中的新词统计表,并进行汇总统计产生新词统计汇总表,为新词统计汇总表中每个新切分单元分配唯一文本ID并产生ID映射扩展表,将其发送至所有文本切分子系统中的切分子系统收发模块50,由各个切分子系统收发模块50将ID映射扩展表发送至ID映射表存储模块30对ID映射表进行扩展更新;包括:管理子系统收发模块140、新词统计汇总表存储模块130、ID映射表扩充模块110及ID映射扩展表存储模块120。
其中,所述管理子系统收发模块140,用于从各个切分子系统收发模块50获取相应的新词统计表,并发送至新词统计汇总表存储模块130进行汇总统计;统计汇总完毕后,通知ID映射表扩充模块110;以及从ID映射扩展表存储模块120中获取ID映射扩展表,并发送至各个切分子系统收发模块50;这里,所述管理子系统收发模块140还可以增加一个定时单元(图中未示出),用于计时,当定时计数值到达预设值,向各个切分子系统收发模块请求并获取相应的新词统计表。
所述新词统计汇总表存储模块130,用于汇总统计并保存由管理子系统收发模块140发送来的各个文本切分子系统中的新词统计表;
所述ID映射表扩充模块110,用于接收到管理子系统收发模块140发送来的新词统计汇总表统计汇总完毕的通知后,从新词统计汇总表存储模块130中的新词统计汇总表中获取新切分单元,为每个新切分单元分配唯一文本ID,建立映射关系,并加入到ID映射扩展表存储模块120中的ID映射扩展表中,并在新词统计汇总表存储模块130中的新词统计汇总表中删除已获取的新切分单元及其出现次数值;以及处理完新词统计汇总表中的所有汇总的新切分单元,通知管理子系统收发模块140 ID映射扩展表更新完毕。这里,所述ID映射表扩充模块110中还可以增加一个比较单元(图中未示出),用于从新词统计汇总表存储模块中获取新词统计汇总表中保存的切分单元的出现次数值,并与门限值进行比较,将出现次数值超出门限值的新切分单元从新词汇总统计表中取出。
所述ID映射扩展表存储模块120,用于保存从ID映射表扩充模块110发送来的切分单元到文本ID的映射关系的ID映射扩展表。这里,位于ID映射表管理子系统中的这个ID映射扩展表是整个搜索引擎系统中最新的ID映射表。
首先,在每个文本切分子系统中,切分模块10从互联网上抓取的源文本,并从源文本中提取出切分单元,将其发送至ID映射模块20,ID映射模块20在ID映射表存储模块30中的ID映射表中查找每一个切分单元所对应的文本ID,并将其填入切分单元信息中;对于那些没有在ID映射表中找到的新切分单元,ID映射模块20将在新词统计表存储模块40中的新词统计表中查找这一切分单元,如果找到,则将其出现的次数加1,然后将这一切分单元丢弃。如果在新词统计表中也没有找到,就在新词统计表中创建一组用于存储新切分单元及其出现次数值的新表项,并将其出现次数值置为1,然后再将其丢弃。
同时,在ID映射表管理子系统100中,管理子系统收发模块140要向搜索引擎系统中所有的文本切分子系统的切分子系统收发模块50发新词统计表获取请求消息(如果有定时单元,可以定时发送获取请求消息),然后将收到的新词统计表发送到ID映射表管理子系统100中的新词统计汇总表存储模块130中。汇总过程中,同一切分单元在不同文本切分子系统中出现的次数被累加在一起。当所有文本切分子系统的新词统计表都已经加入完毕之后,管理子系统收发模块140向ID映射表扩充模块110发送数据汇总完毕的消息。
ID映射表扩充模块110在收到数据汇总完毕的消息之后,开始对新词统计汇总表存储模块130中的新词统计汇总表进行处理,可以将其中出现次数超过指定门限值的新切分单元,分配唯一的文本ID,建立映射关系,加入到ID映射扩展表存储模块120中的ID映射扩展表中。当所有表项都处理完之后,新词统计汇总表中已被分配过文本ID的切分单元将被ID映射表扩充模块110清空,然后ID映射表扩充模块110向管理子系统收发模块140发送ID映射扩展表更新完毕的消息。
管理子系统收发模块140在收到ID映射表更新完毕消息之后,将ID映射扩展表存储模块120中更新后的ID映射扩展表发送至搜索引擎系统中所有的文本切分子系统中的切分子系统收发模块50。
所有文本切分子系统中的切分子系统收发模块50从ID映射表管理子系统接收到更新的ID映射表之后,就用更新的ID映射表替换旧表,供ID映射模块使用。在此之后,搜索引擎建立的索引中将包括这些新发现的切分单元,而检索系统也可以对这些新切分单元进行检索。
参照图3,为本发明实施例所述方法的流程图,本发明所述的 ID映射表扩充方法,用于具有至少一个文本切分子系统的分布式搜索引擎系统,包括如下步骤:
步骤301:每个文本切分子系统分别统计在各自ID映射表中无对应文本ID映射关系的新切分单元,
步骤302:每个文本切分子系统为统计得到的新切分单元分别分配唯一的文本ID,建立映射关系,然后各自更新ID映射表。这里,可以采用定时各自更新ID映射表,或者,在每个文本切分子系统中,当所统计得到的新切分单元的出现次数超过门限值时,为所述出现次数超过门限值的新切分单元分别分配唯一的文本ID,并建立映射关系,然后各自更新ID映射表。
参照图4,为本发明另一实施例所述方法的流程图,本发明所述的ID映射表扩充方法,用于具有至少一个文本切分子系统的分布式搜索引擎系统,包括如下步骤:
步骤401:每个文本切分子系统分别统计在各自ID映射表中无对应文本ID映射关系的新切分单元,
步骤402:将每个文本切分子系统统计得到的新切分单元进行汇总,这里,可以采取定时地将每个文本切分子系统获得的新切分单元进行汇总;
步骤403:为汇总后的每个新切分单元分配唯一的文本ID,并在每个新切分单元与分配给它的文本ID之间建立映射关系,然后分别更新每个文本切分子系统中ID映射表;这里,同样可以仅对汇总后的新切分单元中出现次数超过门限值的新切分单元分别分配唯一的文本ID,并建立映射关系,然后分别更新每个文本切分子系统中ID映射表。
综上所述,采用图1所述系统及图3所述方法,可以实现每个文本切分子系统中对各自ID映射表的即时动态更新。采用图2所述系统及图4所述方法,可以实现在各个文本切分子系统中获取的新切分单元在整个搜索引擎系统中具有全局一致的文本ID分配,即在实现ID映射表即时动态更新的同时,又确保了在不同服务器上的ID映射表的一致性,使得该分布式搜索引擎系统能够提高搜索速度及搜索质量,从而增加搜索的可靠性。
本发明所述的一种分布式搜索引擎系统及ID映射表扩充方法,并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明之领域,对于熟悉本领域的人员而言可容易地实现另外的优点和进行修改,因此在不背离权利要求及等同范围所限定的一般概念的精神和范围的情况下,本发明并不限于特定的细节、代表性的设备和这里示出与描述的图示示例。