查询结果排序方法以及信息查询系统的制作方法

文档序号:6563657阅读:147来源:国知局
专利名称:查询结果排序方法以及信息查询系统的制作方法
技术领域
本发明涉及计算机技术,特别的涉及一种查询结果排序方法以及信息查询系统。
背景技术
随着计算机信息技术的发展,基于查询的基础服务的应用越来越广泛。比如号码查询、便民服务查询、web网站地址查询等查询。在用户不能准确提供要求单位名称的情况下,搜索引擎根据用户要求的关键字进行查询,将已登记为相应关键字的单位的信息提供给用户,为登记单位提供增值服务。
随着电信业务和计算机信息技术的结合,基于查询的基础服务越来越广泛的被应用到电信业务中,其典型的应用是,用户在通信终端侧拨打信息台查询信息内容,电话被接入话务员进行人工服务,用户通过话务员查询关于某些不确定具体单位的信息,话务员根据用户要求输入查询条件查询信息查询系统,由信息查询系统根据查询条件在信息数据库中查询,获取符合用户要求的信息并优先选择某单位信息给用户,用户根据所提供的信息得到该单位的联系方式,并可以根据联系方式与之联系取得相关的服务。
通过电话语音进行的信息查询系统和其他的查询系统的区别主要是基于电话语音查询的信息是通过话务员筛选提供给查询者的,查询者无法预览到符合查询条件的查询返回结果,话务员为了加快查询的速度一般将查询结果的第一条信息提供给查询者,因此显示的查询结果的排序,特别是首位的排序,在通过电话语音进行的信息查询系统中尤为重要。在信息查询系统中,在登记单位注册单位信息时同时登记优先权值,使得优先权值越大的单位,排列在查询结果的首位的次数越多。
在现有技术中,一般采用基于优先权值滚动排列的方式显示查询结果。该技术方案具体是,例如有A、B两单位均登记了某个关键字(设为X),A、B两单位登记的优先权值分别为2、3,当话务员应用户要求就该关键字X进行查询时,搜索引擎获取到符合该关键字的单位A、B,根据A、B单位登记的优先权值2、3,选择排列在首位的单位记录,假设在第一次查询时,将单位A排列在首位,并统计单位A、B排列在首位的次数(1次、0次);在第二次相同关键字的查询时,根据统计结果、以及优先权值关系,继续将单位A排列在首位,并统计单位A、B排列在首位的次数(2次、0次);在第三次相同关键字的查询时,将单位B排列在首位,并统计单位A、B排列在首位的次数(2次、1次);在第四、第五次相同关键字的查询时,继续将单位B排列在首位,直到统计单位A、B排列在首位的次数(2次、3次),再在以后相同关键字的查询时,将单位A排列在首位,如此反复类推,根据统计的各单位排列在首位的历史次数,确定当前应该将哪个单位排列在首位。
由上可见,该基于优先权值滚动排列的方式显示查询结果的技术方案,用户可以根据多次查询的结果,预测某关键字查询结果的排序规律,容易被恶意访问钻空子。最简单一个例子,假设的C、D两单位均登记了某个关键字(设为S,C、D两单位登记的优先权值分别为1和1。假设,在一次用户查询该关键字S后,单位C排列在首位,话务员将排在首位的单位C的信息推荐给用户,用户根据所提供的信息联系单位C,C单位便能根据本单位登记的优先权值,预测的排序规律,预测到当下一次就关键字S查询发生时,排在查询结果首位的单位决不会是本单位。如果C单位为了打击对手单位D,使得自己被推荐的次数增加,那么C单位可以作为普通用户接入系统查询该关键字S,显然,系统的查询结果列表会显示单位D在首位,并且系统自动给C单位增加一次被查询的记录;在下一次真正的用户查询时,C单位的信息又排在了首位,话务员继续将C单位信息推荐给用户。
由上可见,由于C单位根据预测的排序规律进行恶意查询,使得本单位被真正用户查询到的次数大大增加,而对手单位D被真正用户查询到次数大大减少,甚至不能被真正用户查询到。因此该方案存在漏洞,在有恶意查询的情况(是否为恶意查询,话务员以及信息查询系统是难以得知或阻止的)下提供的服务显失公平。
另外的,该基于优先权值滚动排列的方式显示查询结果的技术方案在确定每次排列在查询结果首位的单位时,需要根据之前统计的各单位排列在首位的记录确定,因此,当在信息查询系统中登记同样查询条件的单位的记录时,该新增单位的记录不能做到实时生效。而只有在每新登记一单位后,将之前的与该新增加单位登记的查询条件相同的所有单位的排列在首位的历史次数归零后,信息查询系统才能按照原登记单位以及新增单位的优先权值进行排序,使得该新增加单位的记录生效。由于每增加一个新增单位,均需要对一统计的单位排列在首位的历史次数进行一次归零,从而给查询系统的直接使用者(话务员)造成不便。

发明内容
本发明提供一种查询结果排序方法,实现对查询记录,按照记录登记的优先权值,确定将排列在待显示的查询结果的首位的记录,并且使得当前应排列在显示的查询结果首位的记录不可预测。
本发明还提供一种信息查询系统,实现对查询记录,按照记录登记的优先权值,确定将排列在待显示的查询结果的首位的记录,并且使得当前应排列在显示的查询结果首位的记录不可预测。
本发明所提供查询结果排序方法,包括一种查询结果排序方法,其特征是,包括根据查询条件查询信息数据库,确定符合查询条件的记录;根据符合查询条件的记录对应的优先权值,随机确定排列在待显示的查询结果首位的记录,并确定其他符合查询条件的记录在待显示的查询结果中的排序位置。
本发明所提供信息查询系统,包括信息库存储单元,用于存储信息数据库;查询单元,用于根据用户查询条件,查询所述单位信息库存储单元存储的信息数据库,确定符合查询条件的记录;
优先权值确定单元,用于确定所述查询单元所确定的记录对应的优先权值;排序单元,用于根据所述优先权值确定单元确定的记录对应的优先权值,随机确定排列在待显示的查询结果首位的记录,并确定所述查询单元确定的其他记录在待显示的查询结果中的排序位置。
由于本发明实施例在根据查询条件查询信息数据库确定符合关键字的记录,根据各单位的优先权值,随机确定排列在显示的查询结果首位的记录,使得当前应排列在显示的查询结果首位的记录不可预测。避免了由于恶意用户预测查询结果排序而进行恶意查询导致的显失公平的问题,有利于增强登记用户对信息查询系统提供的服务质量的信心。同时的,由于本发明实施例根据各单位的优先权值,随机确定排列在显示的查询结果首位的记录,而不需依据之前的排列在首位的统计次数确定当前应该排列在显示的查询结果首位的记录,使得新登记的用户的记录能够实时生效,提高了信息查询系统的业务性能,以及系统的直接使用者(话务员)的使用感受。


图1为实施例1的用户通过通话终端查询信息的方法流程示意图;图2为本发明中的信息数据库采用的数据组织结构示意图;图3为实施例1中提供的根据优先权值确定查询结果排序方法的流程示意图;图4为实施例1的优先权值与数值区间的映射关系示意图;图5为实施例2中提供的根据优先权值确定查询结果排序方法的流程示意图;图6为实施例3中的信息查询系统结构示意图;图7为实施例4中的信息查询系统结构示意图;图8为实施例5中的信息查询系统结构示意图。
具体实施例方式
本发明实施例的核心是,在根据查询条件查询信息数据库确定符合查询条件的记录后,根据各记录对应的优先权值,随机确定排列在查询结果首位的记录,使得不能根据当前查询条件的查询结果预测后续就相同查询条件查询将排列在首位的具体记录。
为了使本领域的技术人员更好的理解本发明内容,以下结合附图以及具体实施例对本发明内容进行详细的说明。
实施例1图1是本实施例的用户通过通话终端查询信息的方法流程示意图,如图示,方法包括步骤101用户通过通话终端设备接入到接入设备。
用户通过固定电话、手机、小灵通、IPTV终端、Internet终端等作为通话终端,拨打电话信息查询系统(比如114查号系统、12580信息服务中心等)的号码,通过通信网络接入到相应查询系统的接入设备。
步骤102接入设备接入通话请求,接通话务员。
接入设备接收到用户的接入后,根据预定的接入规则,将接入通话请求接入到话务员坐席,由话务员处理用户的查询请求,具体接入处理可以采用现有技术手段进行处理。
步骤103话务员确定用户的查询请求确定查询条件,并输入查询条件查询信息数据库。
用户接通话务员后,向话务员描述查询需求,话务员根据用户的查询需求,结合的检索经验,确定查询条件(查询条件一般由查询关键字、以及查询的业务类别构成)向信息查询系统输入该查询条件,以由信息查询系统根据该查询条件查询信息数据库。
在信息数据库中保存了登记的用户信息,登记的用户信息按照不同业务类别进行保存。为了便于信息数据库的管理维护方便,以登记用户为用户为例,在信息数据库中的单位信息可以采用图2所示的数据组织结构,其他的类型的登记用户的信息可以相应参考图2所示的结构,其相应的查询的方法同登记用户为单位的相应查询方法,如图2示单位信息20由单位注册人信息21、单位扩展信息22、以及单位优先信息23三类信息组成,其中单位注册人信息21包括单位的名称、单位联系电话、所在地市、经营范围、联系人、所在具体位置、以及WEB或WAP地址等具体的单位基本信息;单位扩展信息22按照单位所在的不同行业和业务类型有不同的表现,一般包括单位的业务信息等反映该单位业务的分类参考信息;单位优先信息23中登记了该单位就所在的业务类别231、就该业务类别231所登记的关键字232、以及该关键字232对应的优先权值233等与搜索有关的信息;对于需要注册登记多种业务类别的单位,可以针对不同的业务类别分别注册相应的关键字,并且就各关键字分别登记相应的优先权值。采用该数据组织结构既有利于信息数据库的管理维护,还有利于以后扩展信息数据库以为登记单位提供多样化的服务。在单位优先信息23中,如果业务类别231字段为空,则表示该优先数据适用于全部业务数据。
步骤104根据查询条件进行查询,确定符合查询条件的所有信息记录,以及各记录对应的优先权值。
一般的查询条件由业务类别信息和关键字组成,话务员输入查询关键字,设为“XXXX”,和业务类别,设为“业务1”后,查询系统的搜索引擎在图2所示的数据结构的信息数据库库中进行字段匹配,具体是在图2所示的各单位记录的关键字232的字段中匹配关键字“XXXX”,在业务类别231的字段中匹配业务类别“业务1”。根据查询条件进行集合“与”运算,在单位优先数据中匹配得到了满足关键字、业务类别要求的所有单位记录。
如果输入的任务类别信息为空,则表示在所有业务类别中进行查询,查询时不需要适配业务类别的信息。
根据各记录相应字段的信息内容确定各就该业务类别、关键字登记的优先权值。假设满足查询条件的单位记录共有n条,根据各记录中的单位名称(图2中的字段211的内容)以及在单位优先权信息23中保存的业务类别231、关键字232以及优先权值205字段的信息内容,形成如表一所示的对应关系表一各记录的单位名称与优先信息内同对应关系

表一表示了基于当前查询的关键字、业务类别查询获取的单位记录的各优先信息。
步骤105根据符合查询条件的记录对应的优先权值,随机确定排列在待显示的查询结果首位的记录,并确定其他符合查询条件的记录在待显示的查询结果中的排序位置。
图3为本实施例提供的一种根据优先权值确定查询结果排序方法的流程示意图,如图示,该方法包括步骤301确定查询结果中的各记录对应的各优先权值的总和。
将各记录对应的优先权值求和,将该优先权值的总和标记为SumXn。
步骤302确定各优先权值与该总和的比例关系。
分别取各优先权值与该总和SumXn的正比,确定各优先权值与该总和的比例关系即比例值,各比例值分别表示了各优先权值对应的记录可能被排在将显示的查询结果的首位的几率。
步骤303根据该比例关系,将各优先权值与该总和的关系映射到数值区间长度的关系。
将总和作为一个数值区间整体,各优先权值与该区间的比例关系表示为该优先权值在该综合的数值区间整体上所占的数值区间大小,便可将各优先权值与该总和的关系映射到数值区间大小的关系,使得个优先权值分别与其所占的数值区间相对应。
为了更具体地说明本步骤,假设该带排序的查询结果的各记录对应的优先权值分别为2、3、1、4,优先权值的总和为10,因此各优先权值与该总和的比例关系分别为2/10、3/10、1/10、4/10。如图4所示,根据总和(10)确定一区间长度等于该总和(10)的数值区间,如图4中的区间5,该数值区间的上限数值可以是任意数值,只要求该数值区间的区间长度等于各优先权值总和即可;根据各优先权值于该总和的比例关系,确定各优先权值应在该数值区间5上占据的区间长度,可得,优先权值为2应在区间5上占据的数值区间的区间长度为2,同理3、1、4分别应在区间5上占据的数值区间的区间长度分别为3、1、4,根据各优先权值应占据的数值区间的区间长度,确定各优先权值分别在区间5上占据的数值区间,如图4所示,优先权值2、3、1、4分别占据的数值区间分别是区间1、区间2、区间3、区间4。
步骤304在步骤303所确定的各优先权值之总和所对应的数值区间内,随机产生一数值。
在步骤303所确定的各优先权值之总和所对应的数值区间内(如图4中的区间5)任意选取一数值,设该随机数为X。
步骤305将该随机数值X落在的数值区间对应的优先权值所对应的记录置于待显示的查询结果的排列中已确定排序位置的排序序号最大的记录所在位置的后一位置。
随机数X肯定落在图4所示的总和(10)作为区间长度的数值区间5内,具体落在哪个数值区间的几率等于各数值区间的区间长度与数值区间5的区间长度的比例值,因此该随机数落在越高优先权值对应的数值区间上的几率越大,各记录可能被确定排在查询结果首位的单位的几率,等于相应记录对应的优先权值与所有符合查询条件的记录的各优先权值的总和的比值,最优化的执行了对各登记用户所登记的优先权值的承诺。
确定该随机数落在的具体数值区间(区间1、区间2、区间3、或区间4),将该随机数所在的数值区间对应的优先权值对应的记录置于待显示的查询结果的排列中已确定排序位置的排序序号最大的记录所在位置的后一位置。
在第一次执行步骤305时,由于未确定任何一记录应在待显示的查询结果的排列中的位置,故该随机数值落在的数值区间对应的优先权值对应的记录将作为待显示的查询结果的排列中的首位的记录;而在确定了i个记录在待显示的查询结果的排列中的位置以后,其中i为大于等于1的自然数,本步骤确定的该随机数值落在的数值区间对应的优先权值对应的记录在待显示的查询结果的排列中的排列序号为i+1。
基于电话的查询业务系统的应用的特性,话务员将把显示在查询结果首位的记录作为推荐记录,推荐给查询用户,因此,确定排列在待显示的查询结果的首位的记录是确定结果排序的主要任务,甚至可以只需要根据优先权值确定该首位记录,而对于其他的记录则不管其优先权值而将其随机排列在该首位记录后面即可。因此,第一次执行至此,即可完成了确定排在需要显示的所有查询结果首位的记录。
但是为了使得所有的记录的排序均根据优先权值的大小,使得优先优先权值越高的记录排列在排列前面的几率越大,继续执行步骤306。
步骤306判断待排序的查询结果的记录是否只剩一个,如果是,则执行步骤308;否则,执行步骤307。
如果未确定排序的查询结果的记录不止一个,则继续执行步骤307;否则,执行步骤308。
步骤307从所有查询结果中去掉步骤305确定排序位置的记录,并返回步骤304,继续对待排序的记录进行排序。
本步骤目的是确定未确定排序的记录的集合,在所有查询结果中除去已确定排序的记录便是未确定排序的记录的集合。返回步骤304,继续确定其他记录在待显示的排序中的位置。
步骤308将记录放在排序的末位。
将最后剩下的一个未确定排序的记录放置在排序的最末位。
步骤309排序结束。
至此,完成所有查询结果的显示排序,使得各记录的排序均根据优先权值的大小,保证优先权值越高的记录排列在排列前面的几率越大。
步骤106按照确定的排序将查询结果显示给话务员。
将查询结果按照步骤105确定的排序,显示给话务员。
步骤107话务员根据查询结果向查询用户推荐某查询结果。
一般的,话务员将显示在排序首位的记录作为推荐记录推荐给用户,或者根据用户要求,继续将排列在第2、3位的记录推荐给用户,供用户选择,尽可能的满足用户的查询需求。
值得说明的是,由上述的技术方案的核心出发,还可以将技术方案进行以下的变更在步骤105中的步骤303中根据该比例关系将各优先权值与该总和的关系映射到数值区间大小的关系时,将总和对应区间长度为1的数值区间,根据各优先权值与该总和的比例关系,将各优先权值分别对应到该总和对应的数值区间内的小数值区间,具体是使各优先权值在该总和对应的数值区间内占据的区间长度分别等于各优先权值与该总和的比例值;其他的步骤不变。该变更后的技术方案同样能够取得与图3、图4所示的技术方案相同的技术效果。
另外,如果将本实施例中的在步骤105中的步骤301更改为确定各优先权值的乘积,或者直接取一大于各优先权值总和的固定数值。并且相应的在后续的步骤302至步骤304中所有涉及总和的数值相应更改为乘积、或者该大于各优先权值总和的固定数值,方法的基本流程不变,形成一个另一技术方案。该更改后的技术方案同样能够完成本发明所要达到的根据优先权值确定排列在待显示的查询结果的首位的单位,并且使得显示的查询结果排序的规律不可预测的目的,只是该技术方案的只使得各记录被确定排在查询结果首位的几率,与该单位对应的优先权值相关,而不是严格等于各优先权值与该总和的比例值而已。另外的,该更改的技术方案相对于图3所示的方法而言,在每次确定排列在待排序的查询结果首位的纪录时,有可能选取的随机数不落在任一优先权值所对应的数值区间内,造成确定失败,需要重新随机选取另一随机数继续对比确定,直到该随机数落在某优先权值所对应的数值区间内为止,因此该技术方案取得的技术效果不如图3所示的技术方案,但是,各记录可能被确定排在查询结果首位的单位的几率,与该单位对应的优先权值相关,并成正比例关系,执行了对各登记单位所对应的优先权值的承诺。
实施例2本实施例提供的另一种根据优先权值确定查询结果排序方法,如图5示,该方法包括步骤501确定查询结果中未确定排序位置的各记录对应的各优先权值的总和SumXn。
步骤502将查询结果中的未排序的记录按照对应的优先权值由大到小进行排序,并确定排序后各记录的序号。
设符合查询条件的记录有n条,按照优先权值的大小,各记录对应的序号分别是1、2、3...n。
步骤503针对各记录,计算每序号对应的优先权值与所有小于该序号的所有序号对应的优先权值之和SumXi,其中i为1、2、3...n中的任意。
设记录序号分别是1、2、3...n的记录对应的优先权值分别是X1、X2、X3...Xn,其中X1>=X2>=X3>=...Xn。
各序号对应的优先权值与所有小于该序号的所有序号对应的优先权值之和可以表示为SumXi=X1+X2+...+Xi,其中i属于{1、2、3...n},即对于序号为1的记录,其对应的SumX1=X1;对于序号为2的记录,其对应的SumX2=X1+X2;对于序号为3的记录,其对应的SumX2=X1+X2+X3,依此类推。
步骤504取0到1之间的随机数RanX,计算RanX与SumXn的乘积RanX*SumXn。
步骤505判断RanX*SumXn与各SumXi的大小关系,取大于RanX*SumXn的SumXi的集合中最小的数值代表的记录,将该记录在待显示的查询结果的排列中的位置,确定为已确定排序位置的排序序号最大的记录所在位置的后一位置。
与步骤305同理,在第一次执行步骤505时,由于未确定任何一记录应在待显示的查询结果的排列中的位置,故该随机数值落在的数值区间对应的优先权值对应的记录将作为待显示的查询结果的排列中的首位的记录;而在确定了i个记录在待显示的查询结果的排列中的位置以后,其中i为大于等于1的自然数,本步骤确定的该随机数值落在的数值区间对应的优先权值对应的记录在待显示的查询结果的排列中的排列序号为i+1。
由于优先权值越高对应的SumXi越大,大于RanX*SumXn的几率越大,因此被确定为置于待排序的查询结果的排序的首位记录的几率也越大,保证了根据优先权值排序。而由于随机数RanX的不确定性,因此大于RanX*SumXn的SumXi的集合中最小的数值代表的记录在用户看来也具有不确定性,用户无法预测显示的查询结果的排序规律,从而避免了由于恶意用户预测查询结果排序而进行恶意查询导致的显失公平的问题。
步骤506判断待排序的查询结果的记录是否只剩一个,如果是,则执行步骤508;否则,执行步骤507。
步骤507从所有查询结果中去掉步骤505确定排序位置的记录,并返回步骤501,继续对待排序的记录进行排序。
步骤508将记录放在排序的末位。
步骤509排序结束。
实施例3
图6所示为本实施例提供的信息查询系统结构示意图,如图示,本系统包括信息库存储单元601,用于存储信息数据库。
信息库存储单元601存储的信息可以采用图2所示的数据组织结构,当存储的信息为单位信息时,存储的信息包括单位名称、所述单位的联系方式、所述单位的业务类别、根据业务类别登记的关键字以及相应的优先权值信息。
查询单元602,用于根据用户的查询条件,查询信息库存储单元601存储的信息数据库,确定符合查询条件的单位、以及所述单位对应的记录。
一般的查询条件由业务类别信息和关键字组成,查询单元602使用业务类别信息和关键字,在信息库存储单元601存储的信息进行字段匹配,假设该信息采用图2所示的数据组织结构,那么,具体是在图2所示的各单位登记的关键字232的字段中匹配关键字“XXXX”,在业务类别231的字段中匹配业务类别“业务1”。根据查询条件进行集合“与”运算,单位优先数据中匹配得到了满足关键字、业务类别要求的所有记录。
如果输入的任务类别信息为空,则表示在所有业务类别中进行查询,查询单元602不需要对业务类别的信息进行适配。
优先权值确定单元603,用于确定查询单元602所确定的记录所对应的优先权值。
排序单元604,用于根据优先权值确定单元603确定的记录对应的优先权值,从对查询单元602确定的记录中,确定排列在待显示的查询结果首位的记录,并确定所述查询单元确定的其他记录在待显示的查询结果中的排序位置。以使显示终端根据排序单元604确定的排序,将查询结果显示给话务员,由话务员根据显示的查询结果向查询用户推荐信息。
排序单元604包括第一计算单元6041,用于获取优先权值确定单元603对未确定在显示的查询结果中的排序位置的各记录所确定的各优先权值,求优先权值的总和。
优先权值与区间关系确定单元6042,用于确定区间长度等于计算单元6041获取的数值的数值区间,建立所述计算单元获取的数值与数值区间的映射关系,并且,根据优先权值确定单元603确定的各优先权值与计算单元6041获取的数值的比例关系,确定各优先权值在区间长度等于计算单元6041获取的数值的数值区间内,占据的数值区间的区间长度,建立各优先权值与数值区间的映射关系。各映射关系获取的基本原理参见实施例1中的步骤303中的描述,在此不作赘述。
随机数选取单元6043,用于在优先权值与区间关系确定单元6042确定的区间长度等于计算单元6041获取的数值的数值区间内,任意选取一数值。
第一排序顺序确定单元6044,用于根据随机数选取单元6043所选取的数值所在的数值区间(该随机数属于各优先权值对应的数值区间的几率,等于该优先权值对应单位排在查询结果的首位的几率),对照优先权值与区间关系确定单元6042获取的优先权值与数值区间的映射关系,确定所落在的数值区间对应的优先权值,将该优先权值对应的记录置于待显示的查询结果的排列中已确定排序位置的排序序号最大的记录所在位置的后一位置。
第一排序顺序确定单元6044的具体工作原理参见实施例1中的步骤305中的描述。
由上可见,本实施例提供的信息查询系统既实现了根据优先权值确定排列在查询结果首位的记录,使得查询结果的排序不可预测,解决了恶意用户预测查询结果排序而进行恶意查询导致的显失公平的问题,还使得各记录可能被确定排在查询结果首位的单位的几率,等于相应记录对应的优先权值与所有符合查询条件的记录的各优先权值的总和的比值。并且,本发明的信息查询系统使得优先权值越高的记录被排列在现实的查询结果中的前面的几率越大,最优化的实现对各登记单位所对应的优先权值的承诺。
实施例4图7为本实施例的信息查询系统的结构示意图,如图7示,本实施例所提供的信息查询系统的基本结构与实施例3中的相同,所不同的是本实施例系统的排序单元605中用于获取优先权值确定单元603确定的各优先权值的乘积的计算单元6045,替换了实施例2中的排序单元605中的第一计算单元6041。
本实施例提供的信息查询系统仍然能够完成本发明目的,使得查询结果的排序的首位不可预测,解决了恶意用户预测查询结果排序而进行恶意查询导致的显失公平的问题。
与实施例3所不同的是,由于第二计算单元6045的替换,各记录可能被第一排序顺序确定单元6044确定排在查询结果首位的几率,与该单位对应的优先权值相关,而不是严格等于各优先权值与该总和的比例值而已。
另外的,本实施例的信息查询系统中的随机数选取单元6043选取的随机数有可能不落在任一优先权值所对应的数值区间内,造成第一排序顺序确定单元6044确定首位记录失败,而需要由随机数选取单元6043重新生成另一随机数,继续由第一排序顺序确定单元6044对比确定,直到该随机数落在某优先权值所对应的数值区间内为止,因此本实施例提供的信息查询系统的运行效率略差于实施例3所提供的信息查询系统。
实施例5图8所示为本实施例提供的信息查询系统结构示意图,如图示,本系统包括本实施例与实施例3、4所不同的是,本实施例的排序单元800包括预排序单元801用于对未确定在显示的查询结果中的排序位置的各记录,按照对应的优先权值由大到小进行排序,并确定排序后各记录的序号。
设符合查询条件的未确定排序位置的记录有n条,按照优先权值的大小,各记录对应的序号分别是1、2、3...n。
第一求和单元802,用于获取未确定在显示的查询结果中的排序位置的各优先权值的总和,设该总和为SumXn。
随机数产生单元803,用于产生一小于第一求和单元802所获取的总和的随机数。
第二求和单元804,用于根据预排序确定单元801确定的排序以及序号,确定各记录对应的优先权值与记录序号小于所述记录序号的记录对应的各优先权值之和。
第二排序顺序确定单元805,用于在第二求和单元804所确定的数值中,选取大于随机数产生单元803获取的随机数的数值集合,并从所述集合中选取最小的数值代表的记录,将所述记录置于待显示的查询结果的排列中已确定排序位置的排序序号最大的记录所在位置的后一位置。
第一排序顺序确定单元805的具体工作原理参见实施例2中的步骤505中的描述。
由于优先权值越高对应的SumXi越大,大于RanX*SumXn的几率越大,因此被第二排序顺序确定单元805确定为置于待排序的查询结果的排序的首位记录的几率也越大,保证了根据优先权值排序。而由于随机数RanX的不确定性,因此大于RanX*SumXn的SumXi的集合中最小的数值代表的记录在用户看来也具有不确定性,用户无法预测显示的查询结果的排序规律,从而避免了由于恶意用户预测查询结果排序而进行恶意查询导致的显失公平的问题,并且,本实施例提供的信息查询系统与实施例3中所述的系统一样,同样使得优先权值越高的记录被排列在现实的查询结果中的前面的几率越大,最优化的实现对各登记单位所登记的优先权值的承诺。
以上对本发明实施例所提供的一种查询结果排序方法以及信息查询系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种查询结果排序方法,其特征是,包括根据查询条件查询信息数据库,确定符合查询条件的记录;根据符合查询条件的记录对应的优先权值,随机确定排列在待显示的查询结果首位的记录,并确定其他符合查询条件的记录在待显示的查询结果中的排序位置。
2.根据权利要求1所述的查询结果排序方法,其特征是,根据所述优先权值,随机确定排列在待显示的查询结果首位的记录,具体包括确定符合查询条件的各记录对应的优先权值;获取所述各优先权值的总和,创建区间长度等于所述总和的数值区间,建立所述总和与数值区间的映射关系;根据所述各优先权值与所述总和的比例关系,确定各优先权值在所述区间长度等于所述总和的数值区间内占据的区间长度以及数值区间,建立各优先权值与数值区间的映射关系;在所述区间长度等于所述总和的数值区间内,任意选取一数值;确定所选取的数值所属的数值区间对应的优先权值,将所述优先权值对应的记录置于待显示的查询结果首位。
3.根据权利要求1所述的查询结果排序方法,其特征是,根据所述优先权值,随机确定排列在待显示的查询结果首位的记录,具体包括确定符合查询条件的各记录对应的优先权值;获取所述各优先权值的乘积,创建区间长度等于所述乘积的数值区间,建立所述乘积与数值区间的映射关系;根据所述各优先权值与所述乘积的比例关系,确定各优先权值在所述区间长度等于所述乘积的数值区间内占据的区间长度以及数值区间,建立各优先权值与数值区间的映射关系;在所述区间长度等于所述乘积的数值区间内,任意选取一数值;确定所选取的数值所属的数值区间对应的优先权值,将所述优先权值对应的记录置于待显示的查询结果首位。
4.根据权利要求1所述的查询结果排序方法,其特征是,根据所述优先权值,随机确定排列在待显示的查询结果首位的记录,包括A、确定符合查询条件的各记录对应的优先权值,并根据按照对应的优先权值由大到小对各记录排序,并确定排序后各记录的序号;B、确定所述各优先权值的总和,并选取一小于所述总和的随机数;C、确定各记录对应的优先权值与记录序号小于所述记录序号的记录对应的各优先权值之和;D、在所有步骤C中所确定的数值中,选取大于步骤B中获取的随机数的数值组成集合,并从所述集合中选取最小的数值代表的记录,将所述记录置于待显示的查询结果首位。
5.根据权利要求1所述的查询结果排序方法,其特征是,所述信息数据库包括单位名称、单位的联系方式、业务类别信息以及所述单位登记的关键字信息;所述根据查询条件查询信息数据库,确定符合查询条件的各记录具体是根据关键字、业务类别查询信息数据库;将业务类别、关键字均匹配的记录作为符合查询条件的记录。
6.一种信息查询系统,其特征是,包括信息库存储单元,用于存储信息数据库;查询单元,用于根据用户查询条件,查询所述单位信息库存储单元存储的信息数据库,确定符合查询条件的记录;优先权值确定单元,用于确定所述查询单元所确定的记录对应的优先权值;排序单元,用于根据所述优先权值确定单元确定的记录对应的优先权值,随机确定排列在待显示的查询结果首位的记录,并确定所述查询单元确定的其他记录在待显示的查询结果中的排序位置。
7.根据权利要求6所述的信息查询系统,其特征是,所述信息库存储单元存储的信息包括单位名称、单位的联系方式、单位的业务类别、所述单位为所述业务类别所登记的关键字以及优先权值信息。
8.根据权利要求6或7所述的信息查询系统,其特征是,所述排序单元包括计算单元,用于获取所述优先权值确定单元对未确定在显示的查询结果中的排序位置的各记录所对应的各优先权值,求优先权值的总和;优先权值与区间关系确定单元,用于确定区间长度等于所述计算单元获取的总和的数值区间,建立所述计算单元获取的总和与数值区间的映射关系,并且,根据所述优先权值确定单元确定的各优先权值与所述总和的比例关系,确定各优先权值在所述区间长度等于所述总和的数值区间内占据的数值区间,建立各优先权值与数值区间的映射关系;随机数选取单元,用于在区间长度等于所述计算单元获取的总和的数值区间内,任意选取一数值;第一排序顺序确定单元,用于将所述随机数选取单元所选取的数值所属的数值区间对应的优先权值对应的记录在待显示的查询结果的排列位置,确定为已确定排序位置的排序序号最大的记录所在位置的后一位置。
9.根据权利要求6或7所述的信息查询系统,其特征是,所述排序单元包括计算单元,用于获取所述优先权值确定单元确定的各优先权值的乘积;优先权值与区间关系确定单元,用于确定区间长度等于所述计算单元获取的乘积的数值区间,建立所述计算单元获取的乘积与数值区间的映射关系,并且,根据所述优先权值确定单元确定的各优先权值与所述乘积的比例关系,确定各优先权值在所述区间长度等于所述乘积的数值区间内占据的数值区间,建立各优先权值与数值区间的映射关系;随机数选取单元,用于在区间长度等于所述计算单元获取的乘积的数值区间内,任意选取一数值;第一排序顺序确定单元,用于将所述随机数选取单元所选取的数值所属的数值区间对应的优先权值对应的记录在待显示的查询结果的排列位置,确定为已确定排序位置的排序序号最大的记录所在位置的后一位置。
10.根据权利要求6或7所述的信息查询系统,其特征是,所述排序单元包括预排序单元,用于对未确定在显示的查询结果中的排序位置的各记录,按照各记录对应的优先权值由大到小进行排序,并确定排序后各记录的序号;第一求和单元,用于获取未确定在显示的查询结果中的排序位置的各优先权值的总和;随机数产生单元,用于产生一小于所述第一求和单元获取的总和的随机数;第二求和单元,用于根据所述预排序确定单元确定的排序以及序号,确定各记录对应的优先权值与记录序号小于所述记录序号的记录对应的各优先权值之和;第二排序顺序确定单元,用于将在所述第二求和单元所确定的数值中,大于所述随机数产生单元获取的随机数的数值集合中最小的数值代表的记录在待显示的查询结果的排列位置,确定为已确定排序位置的排序序号最大的记录所在位置的后一位置。
全文摘要
本发明涉及计算机技术领域,本发明公开了一种查询结果排序方法以及信息查询系统,本发明提供的查询结果排序方法包括根据查询条件查询信息数据库,确定符合查询条件的记录;根据符合查询条件的记录对应的优先权值,随机确定排列在待显示的查询结果首位的记录,并确定其他符合查询条件的记录在待显示的查询结果中的排序位置。本发明实现了对查询记录,按照记录登记的优先权值,确定排列在待显示的查询结果的首位的记录,并且使得当前应排列在显示的查询结果首位的记录不可预测。
文档编号G06F17/30GK1964403SQ20061016084
公开日2007年5月16日 申请日期2006年11月30日 优先权日2006年11月30日
发明者刘洪喜 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1