按业务检索的方法及系统的制作方法

文档序号:6583887阅读:197来源:国知局
专利名称:按业务检索的方法及系统的制作方法
技术领域
本发明涉及信息应用技术领域,更具体地,涉及一种按业务检索的方法及系统。

背景技术
信息检索是电信信息台需要具备的主要功能。目前,实现信息检索主要有两种方法数据库检索和搜索引擎检索。由于电信信息台主要进行模糊查询而不是精确查询,数据库检索的方式很难利用到数据库的传统索引,检索速度会有数量级的下降,而且数据库查询缺少词元(term)匹配和匹配度控制等,所以相比较搜索引擎检索更适合在电信信息台中使用。
电信信息台的主要业务功能是向用户准确地提供所要查询的信息,并且尽可能地把与运营商有签约关系的企业推荐给用户,所以用于电信信息台的搜索引擎系统与传统的搜索引擎系统相比,对查询的速度和排序有更高的要求 (1)查询速度要求更高与网页搜索不同,电信信息台采用人工话务服务,搜索速度提高1秒,对服务的提高就有很大影响。
(2)查询结果排序复杂拨打电话到电信信息台的用户和信息服务提供商的诉求有时是不同的,用户想了解他(她)想查询的信息,而信息服务提供商则希望将签约的商业信息提供给用户,所以电信信息台的话务员根据用户的要求输入检索关键词后,搜索引擎的返回结果要尽量将签约的商业信息和与客户要求最相关的信息排在前面。
另外,不同城市或者不同地区的排序规则经常是不同的,所以搜索引擎还必须能适应各种不同的业务规则排序。
目前中国的电信行业正处于转型期,很多新业务正处于探索阶段,不同地区的业务经常有较大差异,这必然会导致业务规则的变动。现有的用于电信信息台的搜索系统,对按业务功能排序的实现是比较有限的,难以满足不同地区不同业务规则的排序要求。


发明内容
本发明要解决的一个技术问题是提供一种按业务检索的方法及系统,能够满足不同地区不同业务规则的排序要求。
为了实现上述目的,本发明提供了一种按业务检索的方法,包括通过预先部署的检索预处理组件对输入的查询关键词进行分词获得分词查询串,根据业务类型对分词查询串进行分解获得基于分词查询串的多个业务查询串,并根据业务类型的优先级对多个业务查询串进行排序;通过预先部署的检索组件对排序后的多个业务查询串分别进行检索;通过预先部署的检索后处理组件计算输出结果的排序值,并根据输出结果的排序值对检索出的结果进行排序。
根据本发明方法的一个实施例,预先部署检索预处理组件、检索组件及检索后处理组件的操作具体为根据不同地区的业务排序规则从组件库中选择检索预处理组件、检索组件及检索后处理组件,配置并级连检索预处理组件、检索组件及检索后处理组件。
根据本发明方法的另一实施例,该方法还包括检索预处理组件根据期望输出的页号和每页显示的条目数设置预分页区间;检索组件根据预分页区间对检索出的结果进行预分页,并缓存预分页后的结果;检索后处理组件根据输出结果的排序值对缓存的预分页后的结果进行排序。
根据本发明方法的又一实施例,分词查询串包括查询关键词及查询关键词分词后的各单词的“逻辑与”和/或“逻辑或”关系。
根据本发明方法的再一实施例,通过如下步骤计算输出结果的排序值在不同业务类型下的分词查询串对应的排序值P1(f,w,b)不相同的情况下,根据分词查询串对应的排序值P1(f,w,b)确定输出结果的排序值P(f,w,b);或在不同业务类型下的分词查询串对应的排序值P1(f,w,b)相同的情况下,根据业务类型对应的排序值P2(b)确定输出结果的排序值P(f,w,b);或在不同业务类型下的分词查询串对应的排序值P1(f,w,b)相同并且业务类型对应的排序值P2(b)相同的情况下,根据业务排序规则对应的排序值s(b)确定输出结果的排序值P(f,w,b),其中,业务排序规则包括按比例播报、随机轮循、按天轮循、固定排序及相关度排序;其中,f是查询关键词分词后是否有单字的标志,w是查询关键词分词后的关系,b是业务类型。
根据本发明方法的再一实施例,检索组件根据预分页区间对检索出的结果进行预分页,并缓存预分页后的结果的步骤具体为从检索出的结果中取出[max((i-k)*p,0),max((i-k)*p,0)+(i+k)*p]区间中的结果作为预分页后的结果;其中,max((i-k)*p,0)为缓存的起始条目编号,max((i-k)*p,0)+(i+k)*p为缓存的结束条目编号,i为期望输出的页号,k为缓存系数,p为每页显示的条目数。
为了实现上述目的,本发明还提供了一种按业务检索的系统,该系统包括预先配置并级连的检索预处理组件、检索组件及检索后处理组件,其中,检索预处理组件包括分词模块、业务分解模块及业务排序模块,分词模块用于对输入的查询关键词进行分词获得分词查询串,业务分解模块用于根据业务类型对分词查询串进行分解获得基于分词查询串的多个业务查询串,业务排序模块用于根据业务类型的优先级对多个业务查询串进行排序;检索组件包括检索模块,检索模块用于对排序后的多个业务查询串分别进行检索;检索后处理组件包括排序值计算模块及结果排序模块,排序值计算模块用于计算输出结果的排序值,结果排序模块用于根据输出结果的排序值对检索出的结果进行排序。
根据本发明系统的一个实施例,检索预处理组件还包括预分页区间设置模块,预分页区间设置模块用于根据期望输出的页号和每页显示的条目数设置预分页区间;检索组件还包括预分页模块,预分页模块用于根据预分页区间对检索出的结果进行预分页,并缓存预分页后的结果;结果排序模块还用于根据输出结果的排序值对缓存的预分页后的结果进行排序。
根据本发明系统的另一实施例,分词查询串包括查询关键词及查询关键词分词后的各单词的“逻辑与”和/或“逻辑或”关系。
根据本发明系统的又一实施例,排序值计算模块包括第一判断单元,用于在不同业务类型下的分词查询串对应的排序值P1(f,w,b)不相同的情况下,根据分词查询串对应的排序值P1(f,w,b)确定输出结果的排序值P(f,w,b);第二判断单元,用于在不同业务类型下的分词查询串对应的排序值P1(f,w,b)相同的情况下,根据业务类型对应的排序值P2(b)确定输出结果的排序值P(f,w,b);第三判断单元,用于在不同业务类型下的分词查询串对应的排序值P1(f,w,b)相同并且业务类型对应的排序值P2(b)相同的情况下,根据业务排序规则对应的排序值s(b)确定输出结果的排序值P(f,w,b),其中,业务排序规则包括按比例播报、随机轮循、按天轮循、固定排序及相关度排序;其中,f是查询关键词分词后是否有单字的标志,w是查询关键词分词后的关系,b是业务类型。
根据本发明系统的再一实施例,预分页模块还用于从检索出的结果中取出[max((i-k)*p,0),max((i-k)*p,0)+(i+k)*p]区间中的结果作为预分页后的结果;其中,max((i-k)*p,0)为缓存的起始条目编号,max((i-k)*p,0)+(i+k)*p为缓存的结束条目编号,i为期望输出的页号,k为缓存系数,p为每页显示的条目数。
本发明提供的按业务检索的方法及系统,为话务员提供了快速的查询服务,并且搜索返回的结果能根据预先配置的业务规则进行排序,将最符合用户要求和最有商业价值的信息排在前面以便话务员选择。另外,该系统还能够在统一的框架下根据不同地区配置不同的业务规则,实现不同地区的个性化业务排序功能,适应新业务的发展。



此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分。在附图中 图1是本发明采用的Filter-Chain架构示意图。
图2是本发明方法的一个实施例的流程示意图。
图3是本发明方法的另一实施例的流程示意图。
图4是本发明系统的一个实施例的结构示意图。
图5是本发明系统的另一实施例的结构示意图。

具体实施例方式 下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。本发明的示例性实施例及其说明用于解释本发明,但并不构成对本发明的不当限定。
现在的搜索引擎系统通常是根据相关度进行排序的,但是用于电信信息台的搜索系统更多是要求按照业务规则进行排序(在业务规则框架中再兼顾相关度的排序),尤其是对全省甚至全国范围的电信信息台搜索系统来说,各个地区的业务排序规则很可能是不一样的甚至是矛盾的,这就很难利用已有搜索引擎的排序算法来实现。
如图1所示,是本发明采用的Filter-Chain架构示意图。该架构实现了检索的预处理和后处理,并支持级连方式。Filter-Chain架构是一个完整的组成部分,贯穿检索的全过程,共同实现高性能的查询和业务排序功能,下面分别介绍各个部分的功能和实现方法。
S101,PreFilter是检索的预处理,由一组预处理任务组成,组成PreFilter的预处理任务可以根据不同地区的情况分别进行配置,如果需求出现变动,还可以根据接口开发新的预处理任务进行配置。预处理任务的接口可以定义为 public interface PreFilterTask { List<Message>exec(Message msg)throws BtirException; } 其中,Message记录了客户查询串、分页要求、本次检索的页面和页面大小,例如,查询第1页,每页显示20条记录,则Message中的页面大小是客户端的每页显示记录数的整数倍,假如客户端一页显示20条记录,则客户端向服务器请求的页面大小可以是20、40、60......,具体的页数和页面大小可以由客户端确定。
预处理任务的目的是在使用搜索引擎检索之前,根据业务规则对待查询的关键词进行分词、分词后的查询串的分解。可选地还可以进行预分页条件的设置。
(1)分词本发明使用现有的分词算法对查询关键词进行分词获得分词查询串,具体规则是 如果查询关键词分词后不包括单字,则将查询关键词分解为“原词”、“分词后各单词的AND关系”以及“分词后各单词的OR关系”。例如,客户查询关键词为“长城润滑油”,分词后的分词查询串为“长城润滑油”、“长城AND润滑油”以及“长城OR润滑油”三个查询串。
如果查询关键词分词后包含单字,则分词后的词组去掉单字,查询关键词分解为“原词”、“分词后各单词的AND关系”以及“分词后各单词的OR关系”。例如,客户查询关键词为“佳亿五金维修店”,分词后的分词查询串为“佳亿五金维修店”、“五金AND维修”以及“五金OR维修”三个查询串。
(2)查询串分解将上述分词后的查询串再进行分解是为了实现按业务检索做准备,根据订购关键字的有关业务(包括直通车、优先报号、品牌推荐、百事通加盟等)将用户的查询串分解成多个,并根据业务的优先级从高到低排序。例如,客户的查询串为“送水”,查询串按业务分解后变成四个查询串“话务转接送水”、“优先报号送水”、“品牌查询送水”以及“百事通加盟送水”。
(3)预分页条件的设置如果在获得搜索引擎全部结果集后再进行排序,数据交换量太大(因为要获得数据结果集的全部记录,数据加载的时间消耗会很大),这必然导致查询速度的下降,对查询性能非常敏感的系统是不能接受的,预分页的目标是查询时只返回部分数据进行排序。例如,可以通过如下方式实现当要求查询第i页的记录,每页显示的条目数为p时,预分页设置一个缓存参数k(根据测试情况和经验进行配置,一般取3-5),预分页后搜索引擎返回的查询结果是max(0,(i-k)*p)到max(0,(i-k)*p)+(i+k)*p之间的记录。
S102,客户的原始查询关键词通过PreFilter分解后开始进行检索。检索过程由一组检索任务组成,与预处理任务类似,检索任务也可以根据地区进行灵活的配置,检索任务的接口是 public interface SearchTask { void doQuery(StructuredQuery sq,InformList list)throws BtirException; } 检索任务根据PreFilter分解后的查询串进行检索,并实现结果集的去重与合并。
(1)检索将PreFilter分解后的查询串转换成lucene(lucene是基于Java的全文索引工具包)语法格式,采用lucene进行多次检索,获得结果集但不取出以避免大的输入和输出。
(2)构造结果集根据PreFilter设置的预分页条件,将检索结果去重与合并后再取出部分记录。
S103,PostFilter是检索的后处理,由一组后处理任务组成。与前面的PreFilter和Search类似,PostFilter可以根据地区对后处理任务进行灵活地配置。后处理任务的接口是 public interface PostFilterTask { Object exec(int len,Object[]objs)throws BtirException; } PostFilter主要实现和业务相关的排序权重。可选地,基于PreFilter中设置的预分页条件可以进行分页处理。
(1)业务排序根据每种业务的排序策略和业务之间的权重关系,重新计算每条查询结果的综合值,再根据综合值进行排序。例如,可以根据下述函数计算一条记录的综合值P(f,w,b)=[P1(f,w,b),P2(b),s(b)]。
其中,P1(f,w,b)是一个三输入参数的函数,根据业务规则配置每种业务在不同分词情况下的权重值;f是查询关键词分词后是否有单字的标志;w是分词后的关系,取值有3个“原词”、“分词后各单词的AND关系”以及“分词后各单词的OR关系”;P2(b)是排序相关的业务,取值有5个话务呼转、优先报号、品牌推荐、百事通加盟、语音名片;s(b)是根据业务规定的业务排序规则计算的分值,至少有以下几种计算方法 轮循或按比例播报sendNum/privalue,sendNum是记录的播报次数,privalue是信息的权重; 随机轮循s(b)等于一个0-1之间的随机值; 按天轮循Floor([d-Floor(d/n)*n]/p)*n+p,其中p是每个记录的信息权重,d是合同开始天数,n是购买同一产品的记录总数; 固定排序直接取信息的权重值privalue; 直接取搜索引擎排序的score值。
(2)分页根据客户原始请求的页面信息返回相应的查询结果。
上述Filter-Chain的搜索引擎系统架构用于构建类似支持号码百事通业务的电信信息台,特别能满足系统对查询速度和对搜索结果进行复杂业务排序的要求。该系统实现了可方便扩展的排序规则配置和接口,适应业务灵活变化的情况,能快速支持新业务的推出。在统一的框架下实现了不同地区的个性化排序策略。同时该系统还充分考虑了搜索引擎排序的性能,完全满足电信信息台实时查询的需求。
如图2所示,是本发明方法的一个实施例的流程示意图。该实施例可以包括以下步骤 S201,通过预先部署的检索预处理组件对输入的查询关键词进行分词获得分词查询串,根据业务类型对分词查询串进行分解获得基于分词查询串的多个业务查询串,并根据业务类型的优先级对多个业务查询串进行排序; S202,通过预先部署的检索组件对排序后的多个业务查询串分别进行检索; S203,通过预先部署的检索后处理组件计算输出结果的排序值,并根据输出结果的排序值对检索出的结果进行排序。
其中,预先部署检索预处理组件、检索组件及检索后处理组件的操作具体为根据不同地区的业务排序规则从组件库中选择检索预处理组件、检索组件及检索后处理组件,配置并级连检索预处理组件、检索组件及检索后处理组件。
具体地,如果输出结果的排序值为P(f,w,b)=[P1(f,w,b),P2(b),s(b)],则可以通过如下步骤计算输出结果的排序值在不同业务类型下的分词查询串对应的排序值P1(f,w,b)不相同的情况下,根据分词查询串对应的排序值P1(f,w,b)确定输出结果的排序值P(f,w,b);或在不同业务类型下的分词查询串对应的排序值P1(f,w,b)相同的情况下,根据业务类型对应的排序值P2(b)确定输出结果的排序值P(f,w,b);或在不同业务类型下的分词查询串对应的排序值P1(f,w,b)相同并且业务类型对应的排序值P2(b)相同的情况下,根据业务排序规则对应的排序值s(b)确定输出结果的排序值P(f,w,b),其中,业务排序规则包括按比例播报、随机轮循、按天轮循、固定排序及相关度排序。
其中,f是查询关键词分词后是否有单字的标志,w是查询关键词分词后的关系,b是业务类型,各个城市可以灵活地配置P1(f,w,b)、P2(b)和s(b)。
对于参数w,如果分词后无单字,例如,“体育器材”,分词后的结果是“体育”和“器材”,则分词顺序w是“体育器材”、“体育AND器材”、“体育OR器材”;如果分词后有单字,例如,“佳艺五金维修”,分词后的结果是“佳”、“艺”、“五金”和“维修”,则去掉单字后的结果是“五金”和“维修”,分词顺序w是“佳艺五金维修”、“五金AND维修”、“五金OR维修”。
在排序的时候,先比较P1(f,w,b)的大小,如果P1(f,w,b)相等再比较P2(b),如果P2(b)相等再比较s(b)的大小。
下述表1是P1(f,w,b)的含义

表1 下述表2是P2(b)的含义 表2 s(b)是根据业务规定的业务排序规则计算的分值,有以下5种取值按比例播报、随机轮循、按天轮循、固定排序、相关度排序。
例如,假设系统配置的业务类型包括话务呼转、优先报号、品牌推荐、百事通加盟、语音名片及其他,客户待查询的关键词为“佳亿五金维修店”,则系统按下述顺序返回查询结果 (1)订购关键字包括原词“佳亿五金维修店”的话务呼转记录,其中订购同一个关键字的记录根据播报次数按比例轮循; (2)订购关键字包括原词“佳亿五金维修店”的优先报号记录,其中订购同一个关键字的记录根据播报次数按比例轮循; (3)订购关键字包括原词“佳亿五金维修店”的品牌推荐记录,其中订购同一个关键字的记录根据播报次数按比例轮循; (4)业务说明中包括原词“佳亿五金维修店”的百事通加盟记录,记录之间随机轮循; (5)企业名称中包括原词“佳亿五金维修店”的语音名片记录,记录之间根据相关度排序; (6)企业名称中包括原词“佳亿五金维修店”的其它记录,记录之间根据相关度排序; (7)订购关键字包括“五金”AND“维修”的话务呼转记录,其中订购同一个关键字的记录根据播报次数按比例轮循; (8)订购关键字包括“五金”AND“维修”的优先报号,其中订购同一个关键字的记录根据播报次数按比例轮循; (9)订购关键字包括“五金”AND“维修”的品牌推荐记录,其中订购同一个关键字的记录根据播报次数按比例轮循; (10)业务说明中包括“五金”AND“维修”的百事通加盟记录,记录之间随机轮循; (11)企业名称中包括“五金”AND“维修”的语音名片记录,记录之间根据相关度排序; (12)企业名称中包括“五金”AND“维修”的其它记录,记录之间根据相关度排序; (13)订购关键字包括“五金”OR“维修”的话务呼转记录,其中订购同一个关键字的记录根据播报次数按比例轮循; (14)订购关键字包括“五金”OR“维修”的优先报号记录,其中订购同一个关键字的记录根据播报次数按比例轮循; (15)订购关键字包括“五金”OR“维修”的品牌推荐记录,其中订购同一个关键字的记录根据播报次数按比例轮循; (16)业务说明中包括“五金”OR“维修”的百事通加盟记录,记录之间随机轮循‘ (17)企业名称中包括“五金”OR“维修”的语音名片记录,记录之间根据相关度排序; (18)企业名称中包括“五金”OR“维修”的其它记录,记录之间根据相关度排序。
该实施例能够根据预先配置的业务规则进行排序,将最符合用户要求和最有商业价值的信息排在前面以便话务员选择。另外,该实施例还能为不同地区配置不同的业务规则,实现不同地区的个性化业务排序功能,适应新业务的发展。
如图3所示,是本发明方法的另一实施例的流程示意图。该实施例包括以下步骤 S301,通过预先部署的检索预处理组件对输入的查询关键词进行分词获得分词查询串,根据业务类型对分词查询串进行分解获得基于分词查询串的多个业务查询串,并根据业务类型的优先级对多个业务查询串进行排序。
S302,检索预处理组件根据期望输出的页号和每页显示的条目数设置预分页区间。
S303,通过预先部署的检索组件对排序后的多个业务查询串分别进行检索。
S304,检索组件根据预分页区间对检索出的结果进行预分页,并缓存预分页后的结果; 其中,检索组件根据预分页区间对检索出的结果进行预分页,并缓存预分页后的结果的步骤可以具体为从检索出的结果中取出[max((i-k)*p,0),max((i-k)*p,0)+(i+k)*p]区间中的结果作为预分页后的结果;其中,max((i-k)*p,0)为缓存的起始条目编号,max((i-k)*p,0)+(i+k)*p为缓存的结束条目编号,i为期望输出的页号,k为缓存系数,p为每页显示的条目数。
例如,假设客户要检索第1页,每页显示20条记录,检索预处理组件设置预分页条件的时候(假设k=3)要求搜索引擎返回0(根据max(0,(1-3)*20)=0计算得到)到80(根据(1+3)*20=80计算得到)的记录,检索组件检索后从结果集中取出第0到第80条记录,检索后处理组件根据业务规则排序后,取出0到20条记录返回给调用者。
再例如,假设客户端要检索第4页,每页显示20条记录,检索预处理组件设置预分页条件的时候(假设k=3)要求搜索引擎返回20(根据max(0,(4-3)*20)=20计算得到)到140(根据(4+3)*20=140计算得到)的记录,检索组件检索后从结果集中取出第20到第140条记录,检索后处理组件根据业务规则排序后,取出80到120条记录返回给调用者。
进一步地,检索预处理组件将一个查询关键词根据业务规则分解成多个查询串,例如,查询关键词“体育器材”被检索预处理组件分解成18个查询串(如下所示),并且检索预处理组件设置预分页时要求搜索引擎返回20至140条之间的记录。检索组件对这18个查询条件依次进行检索,当前面n个查询条件检索出的记录总数大于等于140后,就停止检索,取其中第20条至140条之间的记录返回。
查询关键词“体育器材”被检索预处理组件分解成的18个查询串如下所示 (1)订购关键字包括原词“体育器材”的话务呼转记录,其中订购同一个关键字的记录根据播报次数按比例轮循; (2)订购关键字包括原词“体育器材”的优先报号记录,其中订购同一个关键字的记录根据播报次数按比例轮循; (3)订购关键字包括原词“体育器材”的品牌推荐记录,其中订购同一个关键字的记录根据播报次数按比例轮循; (4)订购关键字包括“体育”AND“器材”的话务呼转记录,其中订购同一个关键字的记录根据播报次数按比例轮循; (5)订购关键字包括“体育”AND“器材”的优先报号,其中订购同一个关键字的记录根据播报次数按比例轮循; (6)订购关键字包括“体育”AND“器材”的品牌推荐记录,其中订购同一个关键字的记录根据播报次数按比例轮循; (7)业务说明中包括原词“体育器材”的百事通加盟记录,记录之间随机轮循; (8)业务说明中包括“体育”AND“器材”的百事通加盟记录,记录之间随机轮循; (9)企业名称中包括原词“体育器材”的语音名片记录,记录之间根据相关度排序; (10)企业名称中包括“体育”AND“器材”的语音名片记录,记录之间根据相关度排序; (11)企业名称中包括原词“体育器材”的其它记录,记录之间根据相关度排序; (12)企业名称中包括“体育”AND“器材”的其它记录,记录之间根据相关度排序; (13)订购关键字包括“体育”OR“器材”的话务呼转记录,其中订购同一个关键字的记录根据播报次数按比例轮循; (14)订购关键字包括“体育”OR“器材”的优先报号记录,其中订购同一个关键字的记录根据播报次数按比例轮循; (15)订购关键字包括“体育”OR“器材”的品牌推荐记录,其中订购同一个关键字的记录根据播报次数按比例轮循; (16)业务说明中包括“体育”OR“器材”的百事通加盟记录,记录之间随机轮循; (17)企业名称中包括“体育”OR“器材”的语音名片记录,记录之间根据相关度排序; (18)企业名称中包括“体育”OR“器材”的其它记录,记录之间根据相关度排序。
S305,通过预先部署的检索后处理组件计算输出结果的排序值,并根据输出结果的排序值对缓存的预分页后的结果进行排序。
在上述实施例中,分词查询串包括查询关键词及查询关键词分词后的各单词的“逻辑与”和/或“逻辑或”关系。
采用预分页方法是有前提条件的,根据搜索引擎检索出排在第n位的记录(搜索引擎是根据相关度检索的),根据业务规则排序的范围应该在[n-C,n+C]的范围内(C是一个常数)。即,业务规则排序是和相关度排序有一定关联性。如果不能满足这个条件,就不宜采用预分页方法。例如,根据“体育器材”检索到的符合百事通加盟业务的记录数有200条,记录A在搜索引擎检索出的顺序中排第160位,检索组件只取前面20-140条记录给检索后处理组件进行排序,A就不在排序范围之内,但是根据业务规则,A是应该排在前面的,这时排序的结果就不准确了。
但是,在电信信息台的应用中采用预分页方法是合适的,因为从业务规则的制定上看,一个关键字销售给商家的数量必然是有限的,否则商家购买关键字就失去了意义,所以检索预处理组件的参数k设置足够大,肯定能将订购了关键字的记录全部取出来,预分页参数k是排序准确性和排序效率的一个权衡值。
如果要做到预分页的情况下仍然满足业务排序规则的准确性,可以用更复杂的技术,但是没有太大的实用价值。本发明提出的预分页方法,在排序的性能和效果上已经可以达到很好的平衡。
如图4所示,是本发明系统的一个实施例的结构示意图。该实施例可以包括预先配置并级连的检索预处理组件11、检索组件12及检索后处理组件13,其中,检索预处理组件11包括分词模块111、业务分解模块112及业务排序模块113,分词模块111用于对输入的查询关键词进行分词获得分词查询串,业务分解模块112用于根据业务类型对分词查询串进行分解获得基于分词查询串的多个业务查询串,业务排序模块113用于根据业务类型的优先级对多个业务查询串进行排序;检索组件12包括检索模块121,检索模块121用于对排序后的多个业务查询串分别进行检索;检索后处理组件13包括排序值计算模块131及结果排序模块132,排序值计算模块131用于计算输出结果的排序值,结果排序模块132用于根据输出结果的排序值对检索出的结果进行排序。
该实施例能够根据预先配置的业务规则进行排序,将最符合用户要求和最有商业价值的信息排在前面以便话务员选择。另外,该实施例还能为不同地区配置不同的业务规则,实现不同地区的个性化业务排序功能,适应新业务的发展。
如图5所示,是本发明系统的另一实施例的结构示意图。与图4中的实施例相比,该实施例中的检索预处理组件21还包括预分页区间设置模块211,预分页区间设置模块211用于根据期望输出的页号和每页显示的条目数设置预分页区间;检索组件22还包括预分页模块221,预分页模块221用于根据预分页区间对检索出的结果进行预分页,并缓存预分页后的结果;结果排序模块132还用于根据输出结果的排序值对缓存的预分页后的结果进行排序。
根据本发明系统的又一实施例,预分页模块221还用于从检索出的结果中取出[max((i-k)*p,0),max((i-k)*p,0)+(i+k)*p]区间中的结果作为预分页后的结果;其中,max((i-k)*p,0)为缓存的起始条目编号,max((i-k)*p,0)+(i+k)*p为缓存的结束条目编号,i为期望输出的页号,k为缓存系数,p为每页显示的条目数。
上述两个实施例进行预分页处理后可以减少取记录的输入和输出,提高了排序的速度。
在本发明系统的再一实施例中,与图4中的实施例相比,该实施例中的排序值计算模块可以包括第一判断单元,用于在不同业务类型下的分词查询串对应的排序值P1(f,w,b)不相同的情况下,根据分词查询串对应的排序值P1(f,w,b)确定输出结果的排序值P(f,w,b);第二判断单元,用于在不同业务类型下的分词查询串对应的排序值P1(f,w,b)相同的情况下,根据业务类型对应的排序值P2(b)确定输出结果的排序值P(f,w,b);第三判断单元,用于在不同业务类型下的分词查询串对应的排序值P1(f,w,b)相同并且业务类型对应的排序值P2(b)相同的情况下,根据业务排序规则对应的排序值s(b)确定输出结果的排序值P(f,w,b),其中,业务排序规则包括按比例播报、随机轮循、按天轮循、固定排序及相关度排序;其中,f是查询关键词分词后是否有单字的标志,w是查询关键词分词后的关系,b是业务类型。
在上述实施例中,分词查询串包括查询关键词及查询关键词分词后的各单词的“逻辑与”和/或“逻辑或”关系。
该实施例为话务员提供了快速的查询服务,并且搜索返回的结果能根据预先配置的业务规则进行排序,将最符合用户要求和最有商业价值的信息排在前面以便话务员选择。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
权利要求
1.一种按业务检索的方法,其特征在于,所述方法包括
通过预先部署的检索预处理组件对输入的查询关键词进行分词获得分词查询串,根据业务类型对所述分词查询串进行分解获得基于所述分词查询串的多个业务查询串,并根据所述业务类型的优先级对所述多个业务查询串进行排序;
通过预先部署的检索组件对所述排序后的多个业务查询串分别进行检索;
通过预先部署的检索后处理组件计算输出结果的排序值,并根据所述输出结果的排序值对检索出的结果进行排序。
2.根据权利要求1所述的方法,其特征在于,预先部署所述检索预处理组件、所述检索组件及所述检索后处理组件的操作具体为
根据不同地区的业务排序规则从组件库中选择所述检索预处理组件、所述检索组件及所述检索后处理组件,配置并级连所述检索预处理组件、所述检索组件及所述检索后处理组件。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括
所述检索预处理组件根据期望输出的页号和每页显示的条目数设置预分页区间;
所述检索组件根据所述预分页区间对所述检索出的结果进行预分页,并缓存预分页后的结果;
所述检索后处理组件根据所述输出结果的排序值对缓存的所述预分页后的结果进行排序。
4.根据权利要求1所述的方法,其特征在于,
所述分词查询串包括所述查询关键词及所述查询关键词分词后的各单词的“逻辑与”和/或“逻辑或”关系。
5.根据权利要求1所述的方法,其特征在于,通过如下步骤计算所述输出结果的排序值
在不同业务类型下的所述分词查询串对应的排序值P1(f,w,b)不相同的情况下,根据所述分词查询串对应的排序值P1(f,w,b)确定所述输出结果的排序值P(f,w,b);或
在不同业务类型下的所述分词查询串对应的排序值P1(f,w,b)相同的情况下,根据所述业务类型对应的排序值P2(b)确定所述输出结果的排序值P(f,w,b);或
在不同业务类型下的所述分词查询串对应的排序值P1(f,w,b)相同并且所述业务类型对应的排序值P2(b)相同的情况下,根据业务排序规则对应的排序值s(b)确定所述输出结果的排序值P(f,w,b),其中,所述业务排序规则包括按比例播报、随机轮循、按天轮循、固定排序及相关度排序;
其中,f是所述查询关键词分词后是否有单字的标志,w是所述查询关键词分词后的关系,b是所述业务类型。
6.根据权利要求3所述的方法,其特征在于,所述检索组件根据所述预分页区间对所述检索出的结果进行预分页,并缓存预分页后的结果的步骤具体为
从所述检索出的结果中取出[max((i-k)*p,0),max((i-k)*p,0)+(i+k)*p]区间中的结果作为所述预分页后的结果;
其中,max((i-k)*p,0)为缓存的起始条目编号,max((i-k)*p,0)+(i+k)*p为缓存的结束条目编号,i为所述期望输出的页号,k为缓存系数,p为每页显示的条目数。
7.一种按业务检索的系统,其特征在于,所述系统包括预先配置并级连的检索预处理组件、检索组件及检索后处理组件,其中,
所述检索预处理组件包括分词模块、业务分解模块及业务排序模块,所述分词模块用于对输入的查询关键词进行分词获得分词查询串,所述业务分解模块用于根据业务类型对所述分词查询串进行分解获得基于所述分词查询串的多个业务查询串,所述业务排序模块用于根据所述业务类型的优先级对所述多个业务查询串进行排序;
所述检索组件包括检索模块,所述检索模块用于对所述排序后的多个业务查询串分别进行检索;
所述检索后处理组件包括排序值计算模块及结果排序模块,所述排序值计算模块用于计算输出结果的排序值,所述结果排序模块用于根据所述输出结果的排序值对检索出的结果进行排序。
8.根据权利要求7所述的系统,其特征在于,
所述检索预处理组件还包括预分页区间设置模块,所述预分页区间设置模块用于根据期望输出的页号和每页显示的条目数设置预分页区间;
所述检索组件还包括预分页模块,所述预分页模块用于根据所述预分页区间对所述检索出的结果进行预分页,并缓存预分页后的结果;
所述结果排序模块还用于根据所述输出结果的排序值对缓存的所述预分页后的结果进行排序。
9.根据权利要求7所述的系统,其特征在于,
所述分词查询串包括所述查询关键词及所述查询关键词分词后的各单词的“逻辑与”和/或“逻辑或”关系。
10.根据权利要求7所述的系统,其特征在于,所述排序值计算模块包括
第一判断单元,用于在不同业务类型下的所述分词查询串对应的排序值P1(f,w,b)不相同的情况下,根据所述分词查询串对应的排序值P1(f,w,b)确定所述输出结果的排序值P(f,w,b);
第二判断单元,用于在不同业务类型下的所述分词查询串对应的排序值P1(f,w,b)相同的情况下,根据所述业务类型对应的排序值P2(b)确定所述输出结果的排序值P(f,w,b);
第三判断单元,用于在不同业务类型下的所述分词查询串对应的排序值P1(f,w,b)相同并且所述业务类型对应的排序值P2(b)相同的情况下,根据业务排序规则对应的排序值s(b)确定所述输出结果的排序值P(f,w,b),其中,所述业务排序规则包括按比例播报、随机轮循、按天轮循、固定排序及相关度排序;
其中,f是所述查询关键词分词后是否有单字的标志,w是所述查询关键词分词后的关系,b是所述业务类型。
11.根据权利要求8所述的系统,其特征在于,所述预分页模块还用于从所述检索出的结果中取出[max((i-k)*p,0),max((i-k)*p,0)+(i+k)*p]区间中的结果作为所述预分页后的结果;
其中,max((i-k)*p,0)为缓存的起始条目编号,max((i-k)*p,0)+(i+k)*p为缓存的结束条目编号,i为所述期望输出的页号,k为缓存系数,p为每页显示的条目数。
全文摘要
本发明公开了一种按业务检索的方法及系统。其中,该方法包括通过预先部署的检索预处理组件对输入的查询关键词进行分词获得分词查询串,根据业务类型对分词查询串进行分解获得基于分词查询串的多个业务查询串,并根据业务类型的优先级对多个业务查询串进行排序;通过预先部署的检索组件对排序后的多个业务查询串分别进行检索;通过预先部署的检索后处理组件计算输出结果的排序值,并根据输出结果的排序值对检索出的结果进行排序。本发明的方法及系统,能够在统一的框架下根据不同地区配置不同的排序规则,实现多个地区的个性化业务排序功能,适应新业务的发展。
文档编号G06F17/30GK101699440SQ20091022359
公开日2010年4月28日 申请日期2009年11月24日 优先权日2009年11月24日
发明者梁冰, 蔡坚铮, 张玉忠, 林全疆, 方艾, 宋平波, 李云, 金铎, 赵华, 陈康 申请人:中国电信股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1