一种搜索方法和装置的制作方法

文档序号:6597778阅读:209来源:国知局
专利名称:一种搜索方法和装置的制作方法
技术领域
本申请涉及网络技术领域,特别是涉及一种搜索方法和装置。
背景技术
随着电脑技术和网络技术的高速发展,以及近年来国内互联网环境的改善,网际 网络逐渐成为一种获取信息的重要管道,而网上信息也得到了爆炸性的增长。搜索技术的 出现为网络用户快速找到所需信息提供了便捷的手段,传统的搜索方法主要使用三种类型 的搜索引擎,即机器人搜索引擎(Robot)、目录式搜索引擎(Directory or Catalog)和元搜 索引擎(Meta)。传统的搜索方法主要采用关键词匹配来实现对信息的检索,由于用户很难 简单地用关键词或关键词串来忠实地表达真正需要检索的内容,表达困难导致检索困难, 而且自然语言随着时间、地域或领域的改变,同一概念可以用不同的语言表现形式来表达, 对同一概念的检索,不同的用户可能使用不同的关键词查询,结果导致大量的无关信息返 回用户。为解决上述问题,业内出现了以智能搜索方法为基础的智能搜索引擎,采取以知 识库为基础的语义分析技术,利用分词技术、短语识别、处理同义词等手段,根据特征对用 户输入的搜索参数进行分析,产生不同的搜索方案,即搜索计划。其中,用户输入的搜索参 数可以是具有一定特征的词汇,可以是音译词或同音词。如果用户输错了搜索参数,例如, 用户错误地将“诺基亚”输入成“诺记亚”,系统平台可以对错词进行分析,自动推荐出用“诺 基亚”进行搜索的方案,该搜索方案即为对应用户输入的搜索参数的一个搜索计划。另外, 当用户过于口语化的描述“我要采购手机”时,实际上搜索的是“手机”,因此,搜索引擎可以 仅保留“手机”作为搜索计划。上述两种生成搜索计划的方案,可以在搜索引擎中分别通过 拼写纠错模块和重写模块实现。其中,拼写纠错模块可以将错误的输入词改变成正确的输 入词;重写模块可以进行输入词分词,找出中心词等,改写成适合搜索应用的词。现有技术中,通常采用动态加载模块的方式生成搜索计划。具体地,在现有的开 源服务平台,例如Apache服务器,可以通过写C代码实现动态扩展模块。其中,Apache服 务器是一个响应HTTP (Hyper Text Transfer Protocol,超文本传输协议)请求的web服 务器,用于响应最基本的web服务。在Apache服务器上动态加载模块时,首先需要充分了 解Apache服务器的运行机制,或是编写PHP (Hypertext Preprocessor,超级文本预处理语 言)模块,利用PHP模块对Apache接口进行再次封装,将PHP模块编译后动态装载到Apache 服务器中提供服务。上述动态加载模块采用普通的责任链模式的设计,一旦模块的任务完 成,则立即退出应用。在实现本申请的过程中,发明人发现现有技术至少存在如下问题由于Apache服务器本身的设计过于复杂,实现Apache动态模块会直接导致实现 模块成本很高,增加了维护的难度。另外,模块之间无法协调工作,也不能对模块的编写进 行统一控制。当出现冲突的Apache模块时,如果直接提高对模块的编写要求,则在新增模 块时需要修改以前的模块,当模块数量较多时,成本会很大,会降低模块的扩展性;如果通过使用PHP模块扩展,又会增加依赖性和维护的难度。

发明内容
本申请提供了一种搜索方法和装置,能够更快地获取搜索词,方便了对执行模块
的管理。本申请提出一种搜索方法,包括以下步骤获取客户端输入的搜索参数,根据预先配置的或者所述客户端选择的搜索标签确 定处理所述搜索参数的执行序列;按照所述执行序列依次调用所述执行序列对应的执行模块,获取所述执行模块对 所述搜索参数的输出结果,根据所述执行模块的输出结果的精确度等级生成搜索计划,所 述搜索计划包括处理所述搜索参数的执行模块;使用所述搜索计划确定的执行模块处理所述搜索参数,获取所述确定的执行模块 的执行结果,并按照所述执行结果进行搜索,获取搜索结果。优选地,所述根据所述执行模块的输出结果的精确度等级生成搜索计划,具体包 括判断所述执行模块的输出结果的精确度等级是否满足第一精确度要求,如果满 足,则确定由所述执行模块处理所述搜索参数。优选地,所述判断执行模块的输出结果的精确度等级满足精确度要求之后,还包 括判断所述满足第一精确度要求的执行模块之间是否互相冲突,如果互相冲突,则 由所述互相冲突的执行模块中输出结果的精确度等级最高的执行模块处理所述搜索参数。优选地,所述判断满足精确度要求的执行模块之间是否互相冲突,具体包括判断所述满足第一精确度要求的执行模块中是否存在至少两个包含在预定义的 冲突序列中的执行模块;如果存在,则判断所述满足第一精确度要求的执行模块之间互相冲突;如果不存 在,则判断所述满足第一精确度要求的执行模块之间不互相冲突。优选地,所述执行模块的输出结果还包括所述执行模块的执行结果,当所述执行模块的输出结果满足第二精确度要求且所述搜索参数满足预设的复 杂度要求时,按照所述执行模块的执行结果进行搜索,获取搜索结果。优选地,所述执行模块的输出结果包括所述执行模块的执行结果时,所述获取执行模块对所述搜索参数的输出结果之后,还包括将所述执行模块的输出结果中的执行结果通知所述执行序列中的后续执行模块, 使所述后续执行模块根据所述执行模块的执行结果生成输出结果。优选地,所述的方法,还包括为所述执行序列中的各个执行模块设置统一的接口,通过所述接口为所述各个执 行模块的输出结果设置统一的精确度等级。本申请还提出一种搜索装置,包括获取模块,用于获取客户端输入的搜索参数,根据预先配置的或者所述客户端选 择的搜索标签确定处理所述搜索参数的执行序列;
5
调用模块,用于按照所述获取模块确定的执行序列依次调用所述执行序列对应的 执行模块,获取所述执行模块对所述搜索参数的输出结果,根据所述执行模块的输出结果 的精确度等级生成搜索计划,所述搜索计划包括处理所述搜索参数的执行模块;搜索模块,用于使用所述调用模块生成的搜索计划确定的执行模块处理所述搜索 参数,获取所述确定的执行模块的执行结果,并按照所述执行结果进行搜索,获取搜索结^ ο优选地,所述调用模块,具体用于判断所述执行模块的输出结果的精确度等级是 否满足第一精确度要求,如果满足,则确定由所述执行模块处理所述搜索参数。优选地,所述调用模块,还用于判断所述满足第一精确度要求的执行模块之间是 否互相冲突,如果互相冲突,则由所述互相冲突的执行模块中输出结果的精确度等级最高 的执行模块处理所述搜索参数。优选地,所述调用模块,具体用于判断所述满足第一精确度要求的执行模块中是 否存在至少两个包含在预定义的冲突序列中的执行模块;如果存在,则判断所述满足第一 精确度要求的执行模块之间互相冲突;如果不存在,则判断所述满足第一精确度要求的执 行模块之间不互相冲突。优选地,所述执行模块的输出结果还包括所述执行模块的执行结果,所述搜索模块,还用于在所述执行模块的输出结果满足第二精确度要求且所述搜 索参数满足预设的复杂度要求时,按照所述执行模块的执行结果进行搜索,获取搜索结果。优选地,所述执行模块的输出结果包括所述执行模块的执行结果时,所述调用模块,还用于将所述执行模块的输出结果中的执行结果通知所述执行序 列中的后续执行模块,使所述后续执行模块根据所述执行模块的执行结果生成输出结果。优选地,所述的装置,还包括设置模块,用于为所述执行序列中的各个执行模块设置统一的接口,通过所述接 口为所述各个执行模块的输出结果设置统一的精确度等级,供所述调用模块使用。本申请包括以下优点,根据执行模块的执行结果的精确度对可能冲突的执行模块 进行协调,方便了对执行模块的管理,在不改变原有的执行模块的前提下,能够输出更优的 搜索词。另外,对执行模块的调用采用独立的服务,不影响搜索引擎核心查询服务的稳定 性,且执行模块可以进行分布部署,不与搜索引擎服务绑定,也不与搜索引擎竞争服务器资 源,对服务器产生的压力小,处理速度快。当然,实施本申请的任一产品并不一定需要同时 达到以上所述的所有优点。


为了更清楚地说明本申请或现有技术中的技术方案,下面将对本申请或现有技术 描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的 一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这 些附图获得其他的附图。图1为本申请实施例一中的一种搜索方法流程图;图2为本申请实施例二中的一种搜索系统架构示意图;图3为本申请实施例二中的一种搜索方法流程图4为本申请实施例三中的一种搜索装置结构示意图;图5为本申请实施例四中的一种搜索装置结构示意图。
具体实施例方式本申请的主要思想包括,使用独立的平台统一控制搜索词的生成,按照统一的接 口管理同一执行序列中的多个执行模块,根据各个执行模块的输出结果的精确度等级确定 处理搜索参数的执行模块,并根据该确定的执行模块的执行结果,使用搜索引擎进行搜索, 并获取搜索结果。例如,当系统同时选择拼写纠错模块和重写模块处理搜索参数时,当拼写 纠错模块和重写模块的输出结果均满足执行序列对应的精确度要求时,则搜索计划中包括 拼写纠错模块和重写模块,可以获取拼写纠错模块和重写模块的执行结果以及搜索引擎对 该执行结果的搜索结果;如果拼写纠错模块和重写模块互相冲突,则根据拼写纠错模块和 重写模块的输出结果的精确度等级确定保留在搜索计划中的执行模块。其中,执行模块的输出结果可以是对是否需要使用该执行模块处理搜索参数的判 断结果,包括“是”和“否”;也可以是该执行模块对搜索参数的处理结果,即执行模块的执行 结果。系统可以设定对执行模块的输出结果的精确度要求,当执行模块的输出结果满足预 设的精确度要求时,则执行该执行模块,获取该执行模块的执行结果。另外,为便于比较不同执行模块的输出结果的精确度,系统可以为各个执行模块 的输出结果设置统一的精确度等级。将执行模块的输出结果以及该输出结果对应的搜索参 数作为精确度算法的计算因数,进行精确度计算,可以获取执行模块的输出结果的精确度 等级。其中,精确度等级用于表征执行模块处理搜索参数的适合程度。此外,系统还可以为执行序列设置精确度要求,通过比较该精确度要求与执行模 块的输出结果的精确度等级之间的关系,判断执行序列对应的各个执行模块的输出结果是 否满足要求。如果执行模块的输出结果的精确度等级大于执行序列对应的精确度要求,则 判断该执行模块的输出结果满足执行序列对应的精确度要求;否则,则判断该执行模块的 输出结果不满足执行序列对应的精确度要求。下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整的描述,显 然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施 例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属 于本申请保护的范围。如图1所示,为本申请实施例一中的一种搜索方法流程图,包括以下步骤步骤101,获取客户端输入的搜索参数,根据预先配置的或者该客户端选择的搜索 标签确定处理搜索参数的执行序列。其中,搜索标签为客户端输入的搜索参数对应的搜索结果的类别,可以包括“产 品”、“资讯”、“技术”和“全部”等类别。客户端可以根据用户需求选择搜索标签,当客户端 没有选择搜索标签时,系统可以使用预先配置的搜索标签,即“全部”的搜索标签。不同的搜索标签对应不同的执行序列,执行序列为系统预先设定的包含一个或多 个执行模块的封装包,执行序列中的执行模块可以是自定义的模块。系统可以定义包含部 分执行模块的执行序列,通过该执行序列对执行模块进行选择执行;也可以将执行序列默 认配置为全部的执行模块。系统设定的各个执行序列可以对客户端输入的搜索参数进行不同的处理,对应不同的处理功能和对输出结果的精确度要求。客户端可以根据用户的需求, 选择对应所需处理功能对应的搜索标签,并输入待处理的搜索参数,系统以及该搜索标签 确定处理该搜索参数的执行序列。步骤102,按照执行序列依次调用执行序列对应的执行模块,获取该执行模块对所 述搜索参数的输出结果,根据执行模块的输出结果的精确度等级生成搜索计划。其中,搜索计划可以包括处理搜索参数的执行模块,还可以执行模块对搜索参数 的处理策略。具体地,可以为所述执行序列中的各个执行模块设置统一的接口,通过所述接口 为所述各个执行模块的输出结果设置统一的精确度等级。系统可以判断所述执行模块的输 出结果的精确度等级是否满足第一精确度要求,如果满足,则确定由所述执行模块处理所 述搜索参数,即该执行模块包括在搜索计划中。当判断执行模块的输出结果的精确度等级满足精确度要求之后,还可以判断所述 满足第一精确度要求的执行模块之间是否互相冲突,如果互相冲突,则由所述互相冲突的 执行模块中输出结果的精确度等级最高的执行模块处理所述搜索参数,即在搜索计划中仅 保留所述互相冲突的执行模块中输出结果的精确度等级最高的执行模块。上述判断满足精确度要求的执行模块之间是否互相冲突,具体包括判断所述满 足第一精确度要求的执行模块中是否存在至少两个包含在预定义的冲突序列中的执行模 块;如果存在,则判断所述满足第一精确度要求的执行模块之间互相冲突;如果不存在,则 判断所述满足第一精确度要求的执行模块之间不互相冲突。所述执行模块的输出结果还可以包括所述执行模块的执行结果,当所述执行模块 的输出结果满足第二精确度要求且所述搜索参数满足预设的复杂度要求时,按照所述执行 模块的执行结果进行搜索,获取搜索结果。上述第二精确度要求高于第一精确度要求。其中,执行模块对搜索参数的执行结果可以为该执行模块修正后的搜索参数。例 如,当执行模块为拼写纠错模块、搜索参数为“诺记亚”时,拼写纠错模块的执行结果为修正 后的搜索参数,即“诺基亚”;当执行模块为重写模块、搜索参数为“我要采购手机”时,重写 模块的执行结果为修正后的搜索参数,即“手机”。当执行模块的输出结果包括所述执行模 块的执行结果时,上述获取执行模块对所述搜索参数的输出结果之后,还可以将所述执行 模块的输出结果中的执行结果通知所述执行序列中的后续执行模块,使所述后续执行模块 根据所述执行模块的执行结果生成输出结果。步骤103,使用搜索计划确定的执行模块处理搜索参数,获取该确定的执行模块的 执行结果,并按照该执行结果进行搜索,获取搜索结果。具体地,可以使用搜索计划中的各个执行模块分别处理搜索参数,获取各个执行 模块的执行结果,并判断执行结果的个数是否大于指定输出个数;如果所述执行结果的个 数大于所述指定输出个数,则将所述保留的执行结果中精确度等级最高的执行结果作为搜 索词发送到搜索引擎,通过搜索引擎获取搜索结果。此外,在将执行模块的执行结果发送到搜索引擎进行搜索的同时,系统还可以将 执行模块的执行结果返回给客户端,供客户端使用。系统也可以将执行模块的执行结果仅 返回给客户端,而不再发送给搜索引擎,以减轻搜索引擎的压力。例如,执行模块为违禁词 的过滤模块时,可以将执行结果直接返回给客户端,而不再根据执行结果进行搜索。
本申请包括以下优点,根据执行模块的执行结果的精确度对可能冲突的执行模块 进行协调,能够更加快速准确地获取搜索参数背后的用户意图并将用户意图转换为搜索引 擎能够理解的机器语言和执行策略,方便了对执行模块的管理,在不改变原有的执行模块 的前提下,能够输出更优的搜索词。另外,对执行模块的调用采用独立的服务,不影响搜索 引擎核心查询服务的稳定性,且执行模块可以进行分布部署,不与搜索引擎服务绑定,也不 与搜索引擎竞争服务器资源,对服务器产生的压力小,处理速度快。当然,实施本申请的任 一产品并不一定需要同时达到以上所述的所有优点。本申请中的搜索方法,可应用于如图2所示的系统架构中,该系统包括客户端、参 数处理服务器和搜索引擎服务器,其中,客户端用于向参数处理服务器发送搜索请求,输入 搜索参数并选择参数处理服务器预先设定的搜索标签;参数处理服务器根据客户端选择的 执行序列调用该执行序列对应的执行模块,获取执行模块对搜索参数的输出结果,当执行 模块的输出结果满足执行序列对应的精确度要求时,将该执行模块的执行结果发送到搜索 引擎服务器和客户端;搜索引擎服务器将来自参数处理服务器的执行结果作为搜索词,对 搜索词进行搜索,获取搜索结果。具体地,参数处理服务器包括纠错模块、重写模块,以及其他执行模块,上述各执 行模块可以分别对搜索参数进行处理,分别获取输出结果,当该输出结果满足执行序列对 应的精确度要求时,可以执行模块的执行结果作为搜索词返回给客户端,并发送到搜索引 擎服务器。搜索引擎服务器包括解析模块、查询模块和合并模块,其中,解析模块用于对来 自参数处理服务器的执行结果进行解析,获取搜索词;查询模块用于根据搜索词查询网站 数据库,如网络爬虫结构,获取查询结果;合并模块用于对查询模块的查询结果进行合并处 理,获取搜索结果。需要说明的是,在本申请的具体实施方式
中,上述系统架构中的参数处理服务器 和搜索引擎服务器可以分别独立部署,也可以将参数处理服务器和搜索引擎服务器合并为 系统中的同一个装置。上述参数处理服务器和搜索引擎服务器的部署方式,不影响本申请 的保护范围。以下结合上述应用场景,对本申请中的搜索方法进行详细、具体的描述。如图3所示,为本申请实施例二中的一种搜索方法流程图,包括以下步骤步骤301,参数处理服务器获取客户端输入的搜索参数,根据预先配置的或者客户 端选择的搜索标签确定处理搜索参数的执行序列。步骤302,参数处理服务器按照执行序列依次调用该执行序列对应的执行模块,获 取执行模块对搜索参数的输出结果。步骤303,参数处理服务器判断执行模块的输出结果的精确度等级是否满足第一 精确度要求。如果判断结果为是,则执行步骤304 ;否则,结束流程。步骤304,参数处理服务器判断满足第一精确度要求的执行模块之间是否互相冲突。如果满足第一精确度要求的执行模块之间互相冲突,则执行模块305 ;否则,执行 步骤306。步骤305,参数处理服务器确定由互相冲突的执行模块中输出结果的精确度等级最高的执行模块处理搜索参数,在搜索计划中保留该执行模块,获取执行模块的执行结果。步骤306,参数处理服务器使用搜索计划确定的执行模块处理搜索参数,获取该确 定的执行模块的执行结果。步骤307,参数处理服务器判断执行模块的执行结果的个数是否大于指定输出个数。如果执行结果的个数大于指定输出个数,则执行步骤308 ;否则,执行步骤309。步骤308,参数处理服务器将执行模块的执行结果中精确度等级最高的执行结果 作为搜索词发送给搜索引擎服务器,并将执行结果返回客户端。需要说明的是,执行完本步骤后,可以继续执行步骤310。步骤309,参数处理服务器将所有执行结果作为搜索词发送给搜索引擎服务器,并 将执行结果返回客户端。具体地,可以为执行序列中的各个执行模块设置统一的接口,通过该接口为各个 执行模块的执行结果设置统一的精确度等级。当保留的执行结果的个数大于指定输出个数 时,则将各个执行结果按照精确度等级进行排序,选取指定个数的精确度等级高的执行结 果作为搜索计划。在具体的实现过程中,由于系统中的执行模块的输出存在多个可能性,即对输入 的关键词等条件有精确的匹配度。如果输入的关键词与模块中的词严格匹配,则该模块的 输出精准度就高。由于各个模块的词典索引是独立的,不同模块的输出精准度之间没有相 关性。由于各模块相互独立,在新增新的模块的时候不用改变以前的模块,可以对模块输出 设置一个统一的接口,用于模块对输出的准确度进行设置。各模块对精确度算法不一样,结 果不具有可比性,在接口中将输出结果统一到几个精确度等级,作为输出时统一选择的参 考依据。步骤310,搜索引擎服务器对搜索词进行搜索,获取搜索结果。需要说明的是,本申请也可以通过各个模块独立搭建服务来实现,由客户端分别 调用各自的服务可以将服务整合在一起。本申请提出的技术方案可以使用C++实现,在 Linux系统上运行能达到最佳的实施效果。本申请包括以下优点,根据执行模块的执行结果的精确度对可能冲突的执行模块 进行协调,能够更加快速准确地获取搜索参数背后的用户意图并将用户意图转换为搜索引 擎能够理解的机器语言和执行策略,方便了对执行模块的管理,在不改变原有的执行模块 的前提下,能够输出更优的搜索词。另外,对执行模块的调用采用独立的服务,不影响搜索 引擎核心查询服务的稳定性,且执行模块可以进行分布部署,不与搜索引擎服务绑定,也不 与搜索引擎竞争服务器资源,对服务器产生的压力小,处理速度快。当然,实施本申请的任 一产品并不一定需要同时达到以上所述的所有优点。本申请上述实施例提供了搜索方法和应用场景,相应地,本申请还通过以下实施 例提供了应用上述方法的装置。如图4所示,为本申请实施例三中的一种生成搜索计划的装置结构示意图,包括获取模块410,用于获取客户端输入的搜索参数,根据预先配置的或者所述客户端 选择的搜索标签确定处理所述搜索参数的执行序列。调用模块420,用于按照所述获取模块410确定的执行序列依次调用所述执行序列对应的执行模块,获取所述执行模块对所述搜索参数的输出结果,根据所述执行模块的 输出结果的精确度等级生成搜索计划,所述搜索计划包括处理所述搜索参数的执行模块。搜索模块430,用于使用所述调用模块420生成的搜索计划确定的执行模块处理 所述搜索参数,获取所述确定的执行模块的执行结果,并按照所述执行结果进行搜索,获取 搜索结果。本申请包括以下优点,根据执行模块的执行结果的精确度对可能冲突的执行模块 进行协调,能够更加快速准确地获取搜索参数背后的用户意图并将用户意图转换为搜索引 擎能够理解的机器语言和执行策略,方便了对执行模块的管理,在不改变原有的执行模块 的前提下,能够输出更优的搜索词。当然,实施本申请的任一产品并不一定需要同时达到以 上所述的所有优点。如图5所示,为本申请实施例四中的一种生成搜索计划的装置结构示意图,包括获取模块510,用于获取客户端输入的搜索参数,根据预先配置的或者所述客户端 选择的搜索标签确定处理所述搜索参数的执行序列。调用模块520,用于按照所述获取模块510确定的执行序列依次调用所述执行序 列对应的执行模块,获取所述执行模块对所述搜索参数的输出结果,根据所述执行模块的 输出结果的精确度等级生成搜索计划,所述搜索计划包括处理所述搜索参数的执行模块。上述调用模块520,具体用于判断所述执行模块的输出结果的精确度等级是否满 足第一精确度要求,如果满足,则确定由所述执行模块处理所述搜索参数。上述调用模块520,还用于判断所述满足第一精确度要求的执行模块之间是否互 相冲突,如果互相冲突,则由所述互相冲突的执行模块中输出结果的精确度等级最高的执 行模块处理所述搜索参数。上述调用模块520,具体用于判断所述满足第一精确度要求的执行模块中是否存 在至少两个包含在预定义的冲突序列中的执行模块;如果存在,则判断所述满足第一精确 度要求的执行模块之间互相冲突;如果不存在,则判断所述满足第一精确度要求的执行模 块之间不互相冲突。当上述执行模块的输出结果包括所述执行模块的执行结果时,上述调用模块520, 还用于将所述执行模块的输出结果中的执行结果通知所述执行序列中的后续执行模块,使 所述后续执行模块根据所述执行模块的执行结果生成输出结果。搜索模块530,用于使用所述调用模块520生成的搜索计划确定的执行模块处理 所述搜索参数,获取所述确定的执行模块的执行结果,并按照所述执行结果进行搜索,获取 搜索结果。上述执行模块的输出结果还包括所述执行模块的执行结果,上述搜索模块530,还 用于在所述执行模块的输出结果满足第二精确度要求且所述搜索参数满足预设的复杂度 要求时,按照所述执行模块的执行结果进行搜索,获取搜索结果。设置模块MO,用于为所述执行序列中的各个执行模块设置统一的接口,通过所述 接口为所述各个执行模块的输出结果设置统一的精确度等级,供所述调用模块520使用。本申请包括以下优点,根据执行模块的执行结果的精确度对可能冲突的执行模块 进行协调,能够更加快速准确地获取搜索参数背后的用户意图并将用户意图转换为搜索引 擎能够理解的机器语言和执行策略,方便了对执行模块的管理,在不改变原有的执行模块的前提下,能够输出更优的搜索词。当然,实施本申请的任一产品并不一定需要同时达到以 上所述的所有优点。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可借助 软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更 佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的 部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若 干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行 本申请各个实施例所述的方法。以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应 视本申请的保护范围。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分 布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上 述实施例的模块可以集成于一体,也可以分离部署;可以合并为一个模块,也可以进一步拆 分成多个子模块。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。以上公开的仅为本申请的几个具体实施例,但是,本申请并非局限于此,任何本领 域的技术人员能思之的变化都应落入本申请的保护范围。
权利要求
1.一种搜索方法,其特征在于,包括以下步骤获取客户端输入的搜索参数,根据预先配置的或者所述客户端选择的搜索标签确定处 理所述搜索参数的执行序列;按照所述执行序列依次调用所述执行序列对应的执行模块,获取所述执行模块对所述 搜索参数的输出结果,根据所述执行模块的输出结果的精确度等级生成搜索计划,所述搜 索计划包括处理所述搜索参数的执行模块;使用所述搜索计划确定的执行模块处理所述搜索参数,获取所述确定的执行模块的执 行结果,并按照所述执行结果进行搜索,获取搜索结果。
2.如权利要求1所述的方法,其特征在于,所述根据所述执行模块的输出结果的精确 度等级生成搜索计划,具体包括判断所述执行模块的输出结果的精确度等级是否满足第一精确度要求,如果满足,则 确定由所述执行模块处理所述搜索参数。
3.如权利要求2所述的方法,其特征在于,所述判断执行模块的输出结果的精确度等 级满足精确度要求之后,还包括判断所述满足第一精确度要求的执行模块之间是否互相冲突,如果互相冲突,则由所 述互相冲突的执行模块中输出结果的精确度等级最高的执行模块处理所述搜索参数。
4.如权利要求3所述的方法,其特征在于,所述判断满足精确度要求的执行模块之间 是否互相冲突,具体包括判断所述满足第一精确度要求的执行模块中是否存在至少两个包含在预定义的冲突 序列中的执行模块;如果存在,则判断所述满足第一精确度要求的执行模块之间互相冲突;如果不存在,则 判断所述满足第一精确度要求的执行模块之间不互相冲突。
5.如权利要求1所述的方法,其特征在于,所述执行模块的输出结果还包括所述执行 模块的执行结果,当所述执行模块的输出结果满足第二精确度要求且所述搜索参数满足预设的复杂度 要求时,按照所述执行模块的执行结果进行搜索,获取搜索结果。
6.如权利要求1所述的方法,其特征在于,所述执行模块的输出结果包括所述执行模 块的执行结果时,所述获取执行模块对所述搜索参数的输出结果之后,还包括将所述执行模块的输出结果中的执行结果通知所述执行序列中的后续执行模块,使所 述后续执行模块根据所述执行模块的执行结果生成输出结果。
7.如权利要求1所述的方法,其特征在于,还包括为所述执行序列中的各个执行模块设置统一的接口,通过所述接口为所述各个执行模 块的输出结果设置统一的精确度等级。
8.一种搜索装置,其特征在于,包括获取模块,用于获取客户端输入的搜索参数,根据预先配置的或者所述客户端选择的 搜索标签确定处理所述搜索参数的执行序列;调用模块,用于按照所述获取模块确定的执行序列依次调用所述执行序列对应的执行 模块,获取所述执行模块对所述搜索参数的输出结果,根据所述执行模块的输出结果的精确度等级生成搜索计划,所述搜索计划包括处理所述搜索参数的执行模块;搜索模块,用于使用所述调用模块生成的搜索计划确定的执行模块处理所述搜索参 数,获取所述确定的执行模块的执行结果,并按照所述执行结果进行搜索,获取搜索结果。
9.如权利要求8所述的装置,其特征在于,所述调用模块,具体用于判断所述执行模块的输出结果的精确度等级是否满足第一精 确度要求,如果满足,则确定由所述执行模块处理所述搜索参数。
10.如权利要求9所述的装置,其特征在于,所述调用模块,还用于判断所述满足第一精确度要求的执行模块之间是否互相冲突, 如果互相冲突,则由所述互相冲突的执行模块中输出结果的精确度等级最高的执行模块处 理所述搜索参数。
11.如权利要求10所述的装置,其特征在于,所述调用模块,具体用于判断所述满足第一精确度要求的执行模块中是否存在至少两 个包含在预定义的冲突序列中的执行模块;如果存在,则判断所述满足第一精确度要求的 执行模块之间互相冲突;如果不存在,则判断所述满足第一精确度要求的执行模块之间不 互相冲突。
12.如权利要求8所述的装置,其特征在于,所述执行模块的输出结果还包括所述执行 模块的执行结果,所述搜索模块,还用于在所述执行模块的输出结果满足第二精确度要求且所述搜索参 数满足预设的复杂度要求时,按照所述执行模块的执行结果进行搜索,获取搜索结果。
13.如权利要求8所述的装置,其特征在于,所述执行模块的输出结果包括所述执行模 块的执行结果时,所述调用模块,还用于将所述执行模块的输出结果中的执行结果通知所述执行序列中 的后续执行模块,使所述后续执行模块根据所述执行模块的执行结果生成输出结果。
14.如权利要求8所述的装置,其特征在于,还包括设置模块,用于为所述执行序列中的各个执行模块设置统一的接口,通过所述接口为 所述各个执行模块的输出结果设置统一的精确度等级,供所述调用模块使用。
全文摘要
本申请公开了一种搜索方法和装置,该方法包括以下步骤获取客户端输入的搜索参数,根据预先配置的或者所述客户端选择的搜索标签确定处理所述搜索参数的执行序列;按照所述执行序列依次调用所述执行序列对应的执行模块,获取所述执行模块对所述搜索参数的输出结果,根据所述执行模块的输出结果的精确度等级生成搜索计划,所述搜索计划包括处理所述搜索参数的执行模块;使用所述搜索计划确定的执行模块处理所述搜索参数,获取所述确定的执行模块的执行结果,并按照所述执行结果进行搜索,获取搜索结果。通过使用本申请,能够更加快速准确地获取用户意图并将用户意图转换为搜索引擎能够理解的机器语言和执行策略,方便了对执行模块的管理。
文档编号G06F17/30GK102141990SQ201010103540
公开日2011年8月3日 申请日期2010年2月1日 优先权日2010年2月1日
发明者何维, 聂绪平, 肖和, 钟敬辉 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1