首页> 中国专利> 基于众包模型的分布式定向垂直信息搜索系统和方法

基于众包模型的分布式定向垂直信息搜索系统和方法

摘要

本发明公开了一种基于众包模型的分布式定向垂直信息搜索系统和方法,其中该方法以该系统为实现形式,该系统包括相互通信的服务端和客户端,所述服务端与客户端的通信为一对多的通信方式,所述服务端设置在服务器上,所述客户端设置在任意可用资源上,所述服务端上设置有用于评价各客户端任务完成质量的测评模块以及实时监测个客户端状态的监测模块,所述服务端根据所述测评模块和所述监测模块的数据,向所述客户端发送任务指令。本发明中利用任意可用资源进行外包发送任务,以有效利用现有资源,降低运营成本,再通过对各客户端进行评价和实时监测,以确保任务顺利执行,使得搜索过程稳定可靠。

著录项

  • 公开/公告号CN105808588A

    专利类型发明专利

  • 公开/公告日2016-07-27

    原文格式PDF

  • 申请/专利权人 北京瑞狮天智信息技术有限公司;

    申请/专利号CN201410849956.9

  • 发明设计人 龙欣海;陈仲义;周涛;黎俊;

    申请日2014-12-31

  • 分类号G06F17/30(20060101);G06F9/50(20060101);

  • 代理机构北京和信华成知识产权代理事务所(普通合伙);

  • 代理人胡剑辉

  • 地址 100025 北京市朝阳区八里庄西里100号住邦2000商务中心1号楼东区1708

  • 入库时间 2023-06-19 00:12:25

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-06-18

    授权

    授权

  • 2016-08-24

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20141231

    实质审查的生效

  • 2016-07-27

    公开

    公开

说明书

技术领域

本发明涉及一种信息搜索的系统和方法,尤其和基于众包模型的分布式 定向垂直信息搜索系统和方法有关。

背景技术

随互联网的发展,各企业和公司逐步意识到网络信息管理的重要性,纷 纷引入互联网信息搜索系统,以期待系统能够获取互联网上的特定信息,并 进行分析,以辅助企业的业务决策。与搜索引擎所需要的不定向网络信息搜 索不同,厂商和公司关注于特定方面的与自身相关的内容,因此对于厂商和 公司,定向垂直搜索系统更具有市场价值。

互联网信息爆炸使得网络信息量日益暴增,为达到商家对信息完整度和 实时度的需求,搜索程序的性能要求越来越高,分布式系统架构成为定向垂 直搜索系统必然的选择。然而,数据搜索量的剧增同时导致了分布式定向垂 直搜索系统的规模和成本同时剧增,厂商为第一时间获得完整信息,不得不 付出高昂的代价。

现有的分布式定向垂直搜索系统需要节点稳定工作,因此系统中每个节 点都需要部署在服务器上,并且对于服务器的工作环境(温度、电源稳定性、 带宽稳定性等)有较高要求,通常部署在IDC机房或自建机房,这就造成了 系统运营成本的居高不下,而且也造成了资源的极大浪费。

发明内容

针对现有技术中存在的问题,本发明的目的为提供一种能够有效利用现 有资源、降低运营成本且工作稳定可靠的基于众包模型的分布式定向垂直信 息搜索系统和方法。

为实现上述目的,本发明的技术方案如下:

一种基于众包模型的分布式定向垂直信息搜索系统,包括相互通信的服 务端和客户端,所述服务端与客户端的通信为一对多的通信方式,所述服务 端设置在服务器上,所述客户端设置在任意可用资源上,所述服务端上设置 有用于评价各客户端任务完成质量的测评模块以及实时监测个客户端状态的 监测模块,所述服务端根据所述测评模块和所述监测模块的数据,向所述客 户端发送任务指令。

优选地,所述可用资源包括CPU、内存、硬盘和带宽。

优选地,所述服务端包括所述监测模块、所述测评模块、主控模块、指 令模块和检查模块,所述监测模块用于监测每一所述客户端的实时状态,并 将该信息分别发送到所述测评模块和所述主控模块,所述测评模块对所述监 测模块发送来的信息进行统计,以生成各客户端的历史统计数据和实时状态 数据,并将该数据发送到所述主控模块,所述主控模块根据所述测评模块和 所述监测模块发送来的信息对客户端进行任务发送排序、根据输入信息生成 任务、并将所述检查模块发送来的未完成任务情况进行编辑后生成新的任务, 然后将该排序信息和任务信息发送到所述指令模块,所述指令模块根据所述 排序信息和所述任务信息生成任务指令,并分别向相应的客户端发送指令, 所述检查模块检查所述客户端发送来的信息,以确定各客户端任务完成情况, 并将未完成的任务情况发送到所述主控模块,由所述主控模块再次向所述指 令模块发送任务。

优选地,每一所述客户端均包括状态报告模块、任务分解模块、任务打 包回传模块、任务执行模块和状态历史统计模块,所述状态报告模块向所述 服务端报告所述客户端状态,所述任务分解模块将所述服务端发来的任务指 令进行分解处理后发送到所述任务执行模块,所述任务打包回传模块将所述 任务执行模块发来的已完成任务打包发送到所述服务端,所述任务执行模块 执行所述任务分解模块发送来的分解任务指令,并将完成结果发送到所述任 务打包回传模块,所述状态历史统计模块统计本客户端任务完成的历史情况, 并将该信息发送到所述状态报告模块。

优选地,所述测评模块中评价所述客户端能力指标包括所述客户端的任 务成功率和所述客户端的任务规模。

为实现上述目的,本发明还提供如下的技术方案:

一种基于众包模型的分布式定向垂直信息搜索方法,包括如下步骤:

建立服务端平台,并生成任务;

将同意接受任务的任意可用资源作为客户端,并向各客户端外包服务端 的任务;

根据任务完成的历史数据对每一客户端进行评价和排序,在下次外包任 务时以该排序为外包依据;

实时监测每一客户端当前所处状态,根据每一可用资源的当前状态决定 是否向该客户端发送任务。

优选地,所述方法还包括如下步骤:

检查每一接受任务的客户端的任务完成情况,对未完成的任务进行重新 外包发送。

优选地,所述服务端外包发送任务包括如下步骤:

定时生成新任务;

对是否有需要执行的任务进行判断,没有需要执行的认为时进行等待, 有需要执行的任务时进行下一步;

寻找空闲的客户端,没有空闲的客户端时选择等待,有空闲的客户端时 进行下一步;

在各空闲的客户端中根据评价排序,选择成功率最高的客户端发送外包 任务;

生成任务指令后定向发送。

优选地,所述服务端接收所述客户端返回任务完成情况的处理包括如下 步骤:

接收客户端发来的任务完成报告;

对各任务报告进行结果检查;

对各任务报告中全部失败的任务以及部分失败的任务进行回收并重新进 行处理;

更新对各客户端能力的测评排序。

优选地,所述客户端执行任务的过程包括如下步骤:

接收任务;

判断该任务是否可执行,不可执行时返回任务报告,可执行时进行下一 步;

执行任务;

对执行任务的结果进行判断,成功后返回任务报告,不成功进行下一步;

重新执行任务,成功后返回任务报告,反复至多三次后仍不成功进行下 一步;

记录失败信息,并返回任务报告。

本发明的有益效果在于,本发明与现有技术相比,本发明中利用任意可 用资源进行外包发送任务,以有效利用现有资源,降低运营成本,再通过对 各客户端进行评价和实时监测,以确保任务顺利执行,使得搜索过程稳定可 靠,本发明具有非常高的经济性,随着家用电子设备和网络的逐渐普及,本 发明将会被全面推广,具有十分巨大的市场前景。

附图说明

下面结合附图对本发明作进一步详细说明:

图1为本发明一优选实施例的基于众包模型的分布式定向垂直信息搜索 系统结构示意图。

具体实施方式

体现本发明特征与优点的典型实施例将在以下的说明中详细叙述。应理 解的是本发明能够在不同的实施例上具有各种的变化,其皆不脱离本发明的 范围,且其中的说明及附图在本质上是当作说明之用,而非用以限制本发明。

如图1所示,本发明的基于众包模型的分布式定向垂直信息搜索系统, 包括相互通信的服务端1和客户端2,服务端1与客户端2的通信为一对多 的通信方式。

其中,服务端1是系统的控制核心,控制各个客户端2工作,检查客户 端2状态,评估客户端2能力,分发任务,接收结果并审核处理;服务端1 需要稳定执行工作,且负载较为集中,需要使用服务器,并在稳定的环境下 工作(温度、供电、网络)。

客户端2是系统的执行模块,报告自己的状态,接收任务,具体执行, 再把结果反馈回服务端1,本发明中的客户端2可使用家用PC、笔记本等的 CPU、内存、硬盘和带宽在家庭或其他普通环境下工作,以降低整体系统成 本。

本发明中,服务端1包括监测模块11、测评模块12、主控模块13、指 令模块14和检查模块15。其中,监测模块11用于监测每一客户端2的实时 状态,并将该信息分别发送到测评模块12和主控模块13;测评模块12对监 测模块11发送来的信息进行统计,以生成各客户端2的历史统计数据和实时 状态数据,并将该数据发送到主控模块13;主控模块13根据测评模块12和 监测模块11发送来的信息对客户端2进行任务发送排序、根据输入信息生成 任务、并将检查模块15发送来的未完成任务情况进行编辑后生成新的任务, 然后将该排序信息和任务信息发送到指令模块14;指令模块14根据排序信 息和任务信息生成任务指令,并分别向相应的客户端2发送指令;检查模块 15检查客户端2发送来的信息,以确定各客户端2任务完成情况,并将未完 成的任务情况发送到主控模块13,由主控模块13再次向指令模块14发送任 务。

本发明中,定向垂直搜索系统的目标词汇,通过在某些站点对搜索词的 检索,定向收录相关内容。多个搜索词组合为一个任务,由服务端1发布给 客户端2来执行;任务中包含搜索词的数量不能太多也不能太少,若任务中 包含的搜索词太少,则服务端1与客户端2通信可能过于频繁;若任务中包 含的搜索词过多,则无法保证任务完成的及时性,并且时间越久,因系统不 稳定出现意外因素的可能性越高。

本发明中,客户端2数量巨大,每一客户端2均包括状态报告模块21、 任务分解模块22、任务打包回传模块23、任务执行模块24和状态历史统计 模块25。其中,状态报告模块21向服务端1报告客户端状态;任务分解模 块22将服务端1发来的任务指令进行分解处理后发送到任务执行模块24; 任务打包回传模块23将任务执行模块24发来的已完成任务打包发送到服务 端1;任务执行模块24执行任务分解模块22发送来的分解任务指令,并将 完成结果发送到任务打包回传模块23;状态历史统计模块25统计本客户端2 任务完成的历史情况,并将该信息发送到状态报告模块21。

本发明中,客户端2每隔一定时间(一般是1分钟以内)向服务端1发 送信息,报告自身的工作状态,称为心跳;服务端1根据心跳确定各个客户 端2当前的状态,若心跳丢失,可判断客户端2工作异常或者网络不通。

本发明中,测评模块12中评价客户端2能力指标包括客户端2的任务成 功率和客户端2的任务规模。

任务成功率指最近一段时间内对于某站点的任务成功完成的比率,代表 该客户端2是否有能力稳定完成任务,反映了客户端2硬件资源和网络带宽 的稳定性。任务成功率越高,该客户端2可靠性越高。对于不同的站点,因 内容结构、站点结构的不同,成功率可能是不一样的,应分别计算。

任务成功率可以根据每个任务来计算,也可以根据每个搜索词来计算。 若根据任务来计算:

rs=Σteys(si)n

其中rs为某个站点s的成功率;Ns为近期(如:最近一个月)执行的该站 点任务集;n为任务集的数量;si为任务集中每个任务的完成状态(成功/失败)。

考虑到若客户端2刚刚部署,累计的计算样本量不足,可能出现噪点, 故以系统整体(rs,a)和客户端(rs,k)本身数据的加权平均值来作为任务成功率的 计算依据;加权平均的计算方法有很多,如幂指数加权平均算法和选择性加 权平均算法等,若选择较简单的线性加权:

rs=rs,a*λn+λ+rs,k*nn+λ

其中,n为任务集的数量;λ是权重,λ越大,计算结果更接近于系统整体 数据,λ越小,计算结果更依赖于客户端本身数据,可取λ=10。

任务规模指该节点能够一次性负载多大规模的任务,即一个任务中包含 的搜索词有多少。若任务中包含的搜索词太少,则服务端1与客户端2通信 可能过于频繁;若任务中包含的搜索词过多,则无法保证任务完成的及时性, 并且时间越久,因系统不稳定出现意外因素的可能性越高;因此任务规模既 不能太多也不能太少,维持在特定时间(如:10分钟)内完成即可。任务规 模反映客户端2硬件条件和网络条件的水平,对于不同的站点,因内容结构、 站点结构的不同,执行复杂度和所需时间不同,需要分别计算。考虑近期情 况比之前更重要,因此按时间排序做加权平均。

任务规模的计算方式:

qs=[TΣteNs(tiqi*δi)]

其中qs是某个站点的任务规模;T是任务的期望执行时长(如:T=10min); Ns是近期(如:一个月)执行的该站点任务集;ti是任务集中每个执行成功任 务的用时;qi是任务集中每个任务包含执行成功的搜索词的数量;δi是权重, 近期的任务权重高,权重的计算方法同样有很多,可选择比较简单的线性加 权:

δi=Zin(n+1)

其中,n是任务集的数量。

考虑到若客户端2刚刚部署,累计的计算样本量不足,可能出现噪点, 故以系统整体(qs,a)和客户端(qs,k)本身数据的加权平均值来作为计算依据:

qs=qs,a*λn+λ+qs,k*nn+λ

其中,n为任务集的数量;λ是权重,λ越大,计算结果更接近于系统整体 数据,λ越小,计算结果更依赖于客户端本身数据,可取λ=10。

本发明中,服务端1根据所对应站点和项目的优先级对需要执行的任务 进行排序,优先级高的站点和项目,优先发布任务。按稳定度最优的原则, 从空闲的客户端2中选择对应站点的任务成功率最高者;依据客户端2的对 应站点的任务规模选择适当数量的搜索词打包生成任务,发给相应客户端2。 服务端1将任务发布给客户端2后,等待客户端2返回结果;若服务端1发 现任务长时间无反馈,如:超过期望执行时间的2倍,则认为任务超时失败, 服务端1主动结束任务并重新选择客户端2发布任务(返回2)。同时将该 客户端2状态更新为不可用。服务端2接收到任务执行结果后,对收到的数 据进行审核,若审核通过,则记录任务成功,并储存到数据库;若审核不通 过,则记录任务失败,并重新选择客户端2发布该任务(返回2);若部分 数据审核不通过(部分搜索词的返回结果),则记录任务失败,同时将执行 成功的部分储存到数据,执行失败的部分重新选择客户端发布任务。一个任 务执行完成后,无论成功或是失败,服务端1均会重新计算该客户端2的能 力指标和系统整体的能力指标(任务成功率和任务规模),以备下次分配任 务时参考。若某客户端2的的能力指标与系统整体相差过高,任务成功率非 常低或任务规模非常小,则证明该客户端2不具备正常的业务能力,系统自 动标识客户端2为不可用,不再向该客户端2发布任务。

另外,本发明中还提供了一种基于众包模型的分布式定向垂直信息搜索 方法。该方法具体包括如下步骤:

建立服务端平台,并生成任务;

将同意接受任务的任意可用资源作为客户端,并向各客户端外包服务端 的任务;

根据任务完成的历史数据对每一客户端进行评价和排序,在下次外包任 务时以该排序为外包依据;

实时监测每一客户端当前所处状态,根据每一可用资源的当前状态决定 是否向该客户端发送任务;

检查每一接受任务的客户端的任务完成情况,对未完成的任务进行重新 外包发送。

本发明中,服务端外包发送任务包括如下步骤:

定时生成新任务;

对是否有需要执行的任务进行判断,没有需要执行的认为时进行等待, 有需要执行的任务时进行下一步;

寻找空闲的客户端,没有空闲的客户端时选择等待,有空闲的客户端时 进行下一步;

在各空闲的客户端中根据评价排序,选择成功率最高的客户端发送外包 任务;

生成任务指令后定向发送。

本发明中,服务端接收客户端返回任务完成情况的处理包括如下步骤:

接收客户端发来的任务完成报告;

对各任务报告进行结果检查;

对各任务报告中全部失败的任务以及部分失败的任务进行回收并重新进 行处理;

更新对各客户端能力的测评排序。

本发明中,客户端执行任务的过程包括如下步骤:

接收任务;

判断该任务是否可执行,不可执行时返回任务报告,可执行时进行下一 步;

执行任务;

对执行任务的结果进行判断,成功后返回任务报告,不成功进行下一步;

重新执行任务,成功后返回任务报告,反复至多三次后仍不成功进行下 一步;

记录失败信息,并返回任务报告。

本发明的有益效果在于,本发明与现有技术相比,本发明中利用任意可 用资源进行外包发送任务,以有效利用现有资源,降低运营成本,再通过对 各客户端进行评价和实时监测,以确保任务顺利执行,使得搜索过程稳定可 靠,本发明具有非常高的经济性,随着家用电子设备和网络的逐渐普及,本 发明将会被全面推广,具有十分巨大的市场前景。

本发明的技术方案已由优选实施例揭示如上。本领域技术人员应当意识 到在不脱离本发明所附的权利要求所揭示的本发明的范围和精神的情况下所 作的更动与润饰,均属本发明的权利要求的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号