一种搜索排序方法以及装置与流程

文档序号:11155050阅读:318来源:国知局
一种搜索排序方法以及装置与制造工艺
本发明涉及互联网
技术领域
,尤其涉及一种搜索排序方法以及装置。
背景技术
:随着互联网技术的发展,出现了各式各样的搜索引擎以提供用户进行资源搜索。目前的搜索引擎对搜索结果的排序方式通常是基于权重表达式模式,该模式是通过权重表达式计算每个搜索结果的最终排序得分,再根据最终排序得分对每个搜索结果进行排序。例如,权重表达式为A*0.3+B/100+C*100,对于每一个搜索结果,分别套用该公式,计算出一个最终得分,最终得分越大就排越前。由于权重表达式中的每个权重系数都需要由专业人员的历史经验进行权衡,所以导致权重表达式模式的配置门槛过高,而且为了满足不同的排序需求需要经常对权重系数进行调整,所以对权重系数的调整一旦出现偏差,就可能导致整个排序结果不准确。技术实现要素:本发明实施例提供一种搜索排序方法以及装置,可降低搜索排序的配置门槛,并提高排序结果的准确度。本发明实施例提供了一种搜索排序方法,包括:获取搜索关键字,并根据所述搜索关键字获取至少一个搜索结果数据;根据至少一个数据范围表达式确定所述至少一个搜索结果数据对应的优先级,并将相同优先级的搜索结果组合为具有对应优先级的数据集合,并按照优先级顺序对至少一个数据集合进行排序;根据各数据集合分别对应的业务排序表达式,分别对所述各数据集合中的搜索结果数据进行排序,以得到所述至少一个搜索结果数据的最终排序顺序;其中,每个数据范围表达式和每个业务排序表达式均是由预设的至少一个业务排序因子组成的。相应地,本发明实施例还提供了一种搜索排序装置,包括:获取模块,用于获取搜索关键字,并根据所述搜索关键字获取至少一个搜索结果数据;确定组合模块,用于根据至少一个数据范围表达式确定所述至少一个搜索结果数据对应的优先级,并将相同优先级的搜索结果组合为具有对应优先级的数据集合,并按照优先级顺序对至少一个数据集合进行排序;排序模块,用于根据各数据集合分别对应的业务排序表达式,分别对所述各数据集合中的搜索结果数据进行排序,以得到所述至少一个搜索结果数据的最终排序顺序;其中,每个数据范围表达式和每个业务排序表达式均是由预设的至少一个业务排序因子组成的。本发明实施例通过获取与搜索关键字相关的至少一个搜索结果数据,并根据至少一个数据范围表达式确定各搜索结果数据对应的优先级,再将相同优先级的搜索结果组合为具有对应优先级的数据集合,并按照优先级顺序对至少一个数据集合进行排序,根据各数据集合分别对应的业务排序表达式,分别对各数据集合中的搜索结果数据进行排序,以得到所有搜索结果数据的最终排序顺序,由此可见,通过优先级排序以及对各数据集合中的搜索结果数据的二次排序,可以提高排序结果的准确度,而且数据范围表达式和业务排序表达式不再依赖于权重系数,从而可以降低搜索排序的配置门槛。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的一种搜索排序方法的流程示意图;图2是本发明实施例提供的另一种搜索排序方法的流程示意图;图3是本发明实施例提供的一种搜索排序装置的结构示意图;图4是本发明实施例提供的一种确定组合模块的结构示意图;图5是本发明实施例提供的一种排序模块的结构示意图;图6是本发明实施例提供的另一种搜索排序装置的结构示意图;图7是本发明实施例提供的又一种搜索排序装置的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。请参见图1,是本发明实施例提供的一种搜索排序方法的流程示意图,所述方法可以包括:S101,获取搜索关键字,并根据所述搜索关键字获取至少一个搜索结果数据;具体的,本发明实施例所提供的搜索排序装置可以获取用户所输入的搜索关键字,所述搜索排序装置可以应用于浏览器中,因此,用户可以通过浏览器输入所述搜索关键字。所述搜索排序装置获取到所述搜索关键字后,可以根据所述搜索关键字获取至少一个搜索结果数据。例如,所述搜索关键字为“四川火锅”,则所述至少一个搜索结果数据可以包括各种与四川火锅相关联的饭店。进一步的,为了将所述至少一个搜索结果数据进行准确的排序,需要在S101步骤之前,在预设的业务排序因子集合中获取至少一个业务排序因子,并将所述至少一个业务排序因子组合构建为至少一个数据范围表达式和至少一个业务排序表达式。其中,所述业务排序因子集合中的业务排序因子分别为:业务综合得分因子docWeight、权威度值因子authority、精确匹配判断因子exactmatch、匹配程度分档因子textRelLevel、位置距离因子distance;其中,docWeight代表每条结果文档的综合得分情况,集合了文本相关性,权威度等因子;authority代表每条结果文档的权威度值(该字段由用户指定的某一个字段);exactmatch代表结果文档是否有字段与检索串精确匹配;textRelLevel代表结果文档与检索串的文本匹配程度分档;distance代表检索者所在位置与结果文档所在位置的地理位置距离(单位为米),只对LBS(LocationBasedService, 基于位置服务)业务生效。其中,textRelLevel目前主要有以下四个分档:4:perfect,精确匹配,exactmatch为1,例如检索串为AB,结果文档为AB,则该值为4;3:good,子串匹配,检索串是结果文档的子串,例如检索串为AB,结果文档为ABC,则该值为3;2:normal,proximity匹配,检索串是结果文档的近似结果,例如检索串为AB,结果文档为A*B,A*,B*,则该值为2;1:bad,内容不相关,检索串与结果文档字段完全不相关。除上述业务排序因子之外,用户还可以使用文档中自定义的属性数值字段,即所述业务排序因子集合还包括自定义属性因子;同时,提供四则运算符,关系运算符,逻辑运算符等来对数值进行二次加工处理。所述搜索排序装置根据所述业务排序因子集合中的业务排序因子构建至少一个数据范围表达式和至少一个业务排序表达式后,可以为各个数据范围表达式分别绑定对应的所述业务排序表达式,并为所述各个数据范围表达式分别设置对应的优先级。以如下表1为例:优先级数据范围表达式业务排序表达式操作1exactmatch>0authority_docWeight编辑删除2textRelLevel>2authority_docWeight编辑删除3textRelLevel≥1docWeight_authority编辑删除表1表1中的数据范围表达式分别为:“exactmatch>0”、“textRelLevel>2”、“textRelLevel≥1”;“exactmatch>0”和“textRelLevel>2”分别绑定的业务排序表达式均为“authority_docWeight”,“textRelLevel≥1”绑定的业务排序表达式为“docWeight_authority”。“exactmatch>0”的优先级为1,“textRelLevel>2”的优先级为2,“textRelLevel≥1”的优先级为3。其中,“exactmatch>0”的优先级为1表示的是符合精确匹配结果的搜索结果数据为优先级最高的数据。其中,用户可以通过按键对任意一个数据范围表达式进行编辑或删除,也可以对任意一个业务排序表达式进行编辑或删除。下面将以表1为例,对S102和S103进行具体说明。S102,根据至少一个数据范围表达式确定所述至少一个搜索结果数据对应的优先级,并将相同优先级的搜索结果组合为具有对应优先级的数据集合,并按照优先级顺序对至少一个数据集合进行排序;具体的,所述搜索排序装置获取到所述至少一个搜索结果数据后,可以根据至少一个数据范围表达式确定所述至少一个搜索结果数据分别对应的优先级,并将相同优先级的搜索结果组合为具有对应优先级的数据集合,并按照优先级顺序对至少一个数据集合进行排序。以表1为例,若存在10个搜索结果数据,其中,有3个搜索结果数据满足exactmatch>0,则将这三个搜索结果数据的优先级确定为1;有5个搜索结果数据的exactmatch=0,但满足textRelLevel>2,则将这5个搜索结果数据的优先级确定为2;剩余的两个搜索结果数据的textRelLevel≤2,但满足textRelLevel≥1,则将这两个搜索结果数据的优先级确定为3;再将三个优先级为1的搜索结果数据组合为一个优先级为1的数据集合,将5个优先级为2的搜索结果数据组合为一个优先级为2的数据集合,将2个优先级为3的搜索结果数据组合为一个优先级为3的数据集合,然后再将优先级为1的数据集合排在最前面,将优先级为3的数据集合排在最后面。S103,根据各数据集合分别对应的业务排序表达式,分别对所述各数据集合中的搜索结果数据进行排序,以得到所述至少一个搜索结果数据的最终排序顺序;具体的,所述搜索排序装置对各数据集合进行优先级排序后,可以根据各数据集合分别对应的业务排序表达式,分别对所述各数据集合中的搜索结果数据进行排序,以得到所述至少一个搜索结果数据的最终排序顺序。以表1为例,优先级为1的数据集合对应的业务排序表达式为authority_docWeight,优先级为2的数据集合对应的业务排序表达式为authority_docWeight,优先级为3的数据集合对应的业务排序表达式为docWeight_authority;对于优先级为1的数据集合,可以根据authority对优先级为1的数据集合中的各个搜索结果数据进行排序,即按照权威度值进行排序,当存在权威度值相同的搜索结果数据时,再根据docWeight对权威度值相同的搜索结果数据进行排序,即按照综合得分情况进行排序;同样的,对于优先级为2的数据集合,也是先使用authority排序,再对权威度值相同的搜索结果数据使用docWeight排序;对于优先级为3的数据集合,先使用docWeight排序,再对综合得分情况相同的搜索结果数据进行authority 排序;在三个数据集合中的搜索结果数据分别根据对应的业务排序表达式进行排序后,即可得到所有搜索结果数据的最终排序顺序。其中,每个数据范围表达式和每个业务排序表达式均是由预设的至少一个业务排序因子组成的。所述数据范围表达式和所述业务排序表达式中的业务排序因子可以由用户根据自身需求进行任意选择和修改,且无需对所述数据范围表达式和所述业务排序表达式进行权重系数的配置,从而大大降低了搜索排序的配置门槛。本发明实施例通过获取与搜索关键字相关的至少一个搜索结果数据,并根据至少一个数据范围表达式确定各搜索结果数据对应的优先级,再将相同优先级的搜索结果组合为具有对应优先级的数据集合,并按照优先级顺序对至少一个数据集合进行排序,根据各数据集合分别对应的业务排序表达式,分别对各数据集合中的搜索结果数据进行排序,以得到所有搜索结果数据的最终排序顺序,由此可见,通过优先级排序以及对各数据集合中的搜索结果数据的二次排序,可以提高排序结果的准确度,而且数据范围表达式和业务排序表达式不再依赖于权重系数,从而可以降低搜索排序的配置门槛。请参见图2,是本发明实施例提供的另一种搜索排序方法的流程示意图,所述方法可以包括:S201,在预设的业务排序因子集合中获取至少一个业务排序因子,并将所述至少一个业务排序因子组合构建为至少一个数据范围表达式和至少一个业务排序表达式;S202,为所述至少一个数据范围表达式中各数据范围表达式分别绑定对应的所述业务排序表达式,并为所述各数据范围表达式分别设置对应的优先级;具体的,所述业务排序因子集合中的业务排序因子分别为:业务综合得分因子docWeight、权威度值因子authority、精确匹配判断因子exactmatch、匹配程度分档因子textRelLevel、位置距离因子distance;其中,docWeight代表每条结果文档的综合得分情况,集合了文本相关性,权威度等因子;authority代表每条结果文档的权威度值(该字段由用户指定的某一个字段);exactmatch代表结果文档是否有字段与检索串精确匹配;textRelLevel代表结果文档与检索串的文本匹配程度分档;distance代表检索者所在位置与结果文档所在位置的地理位置距离(单位为米),只对LBS业务生效。其中,textRelLevel目前主要有以下四个分档:4:perfect,精确匹配,exactmatch为1,例如检索串为AB,结果文档为AB,则该值为4;3:good,子串匹配,检索串是结果文档的子串,例如检索串为AB,结果文档为ABC,则该值为3;2:normal,proximity匹配,检索串是结果文档的近似结果,例如检索串为AB,结果文档为A*B,A*,B*,则该值为2;1:bad,内容不相关,检索串与结果文档字段完全不相关。除上述业务排序因子之外,用户还可以使用文档中自定义的属性数值字段,即所述业务排序因子集合还包括自定义属性因子;同时,提供四则运算符,关系运算符,逻辑运算符等来对数值进行二次加工处理。因此,搜索排序装置可以根据所述业务排序因子集合中的业务排序因子构建至少一个数据范围表达式和至少一个业务排序表达式。其中,所述数据范围表达式和所述业务排序表达式所支持的字段和基本运算类型可以参见如下表2:表2所述搜索排序装置根据所述业务排序因子集合中的业务排序因子构建至少一个数据范围表达式和至少一个业务排序表达式后,可以为各个数据范围表达式分别绑定对应的所述业务排序表达式,并为所述各个数据范围表达式分别设置对应的优先级。以如下表3为例:优先级数据范围表达式业务排序表达式操作1exactmatch>0authority_-distance编辑删除2textRelLevel≥3docWeight_-distance_authority编辑删除31docWeight_authority_-distance编辑删除表3表3中的数据范围表达式分别为:“exactmatch>0”、“textRelLevel≥3”、“1”; “exactmatch>0”和“textRelLevel>2”分别绑定的业务排序表达式为“authority_-distance”和“docWeight_-distance_authority”,数据范围表达式“1”绑定的业务排序表达式为“docWeight_authority_-distance”。“exactmatch>0”的优先级为1,“textRelLevel≥3”的优先级为2,数据范围表达式“1”的优先级为3。其中,满足“exactmatch>0”的搜索结果数据均为符合精确匹配结果的搜索结果数据;满足“textRelLevel≥3”的搜索结果数据均为文本匹配程度分档大于或等于3的搜索结果数据;所有搜索结果数据均满足数据范围表达式“1”。其中,用户可以通过按键对任意一个数据范围表达式进行编辑或删除,也可以对任意一个业务排序表达式进行编辑或删除。所述搜索排序装置在配置如表3中所示的数据范围表达式以及业务排序表达式时,需在后台进程生成如下代码:其中,对数据范围表达式以及业务排序表的配置格式为json形式,该配置通过cgi进行持久化,可实现业务级别的配置;检索粒度的配置则需通过检索接口参数传入。S203,获取搜索关键字,并根据所述搜索关键字获取至少一个搜索结果数据;具体的,所述搜索排序装置可以获取用户所输入的搜索关键字,所述搜索排序装置可以应用于浏览器中,因此,用户可以通过浏览器输入所述搜索关键字。所述搜索排序装置获取到所述搜索关键字后,可以根据所述搜索关键字获取至少一个搜索结果数据。例如,所述搜索关键字为“四川火锅”,则所述至少一个搜索结果数据可以包括各种与四川火锅相关联的饭店。S204,根据至少一个数据范围表达式计算所述至少一个搜索结果数据中各搜索结果数据的第一业务得分值,并确定所述各搜索结果数据的第一业务得分值所满足的数据范围表达式;每个数据范围表达式对应一个优先级;具体的,所述搜索排序装置可以根据至少一个数据范围表达式计算所述至 少一个搜索结果数据中各搜索结果数据的第一业务得分值,每个搜索结果数据的第一业务得分值均包括与各数据范围表达式分别对应的得分值。以表3为例,若有4个搜索结果数据分别为A、B、C、D,A的exactmatch=1,A的textRelLevel=4;B的exactmatch=0,B的textRelLevel=4;C的exactmatch=0,C的textRelLevel=3;D的exactmatch=0,D的textRelLevel=2,由此可见,A满足表3中的所有数据范围表达式,B和C均满足表3中的“textRelLevel≥3”以及数据范围表达式“1”,而D仅满足表3中的数据范围表达式“1”。S205,根据所述各搜索结果数据的第一业务得分值所满足的数据范围表达式所对应的优先级,确定所述各搜索结果数据对应的优先级;具体的,所述搜索排序装置在所述各搜索结果数据的第一业务得分值所满足的至少一个数据范围表达式中,分别选择出所述各搜索结果数据所满足的具有最高优先级的数据范围表达式,并将所述各搜索结果数据所满足的具有最高优先级的数据范围表达式所对应的优先级分别作为所述各搜索结果数据对应的优先级。继续以S204中的例子进行说明,由上述表3可知,搜索结果数据A所满足的具有最高优先级的数据范围标表达式为“exactmatch>0”,“exactmatch>0”的优先级为1,因此A的优先级也为1;B和C所满足的具有最高优先级的数据范围标表达式为“textRelLevel≥3”,“textRelLevel≥3”的优先级为2,因此B和C的优先级也为2;而D所满足的具有最高优先级的数据范围标表达式为“1”,数据范围标表达式“1”的优先级为3,因此D的优先级也为3。S206,将相同优先级的搜索结果组合为具有对应优先级的数据集合,并按照优先级顺序对至少一个数据集合进行排序;具体的,所述搜索排序装置可以将相同优先级的搜索结果组合为具有对应优先级的数据集合,并按照优先级顺序对至少一个数据集合进行排序。例如,若存在20个搜索结果数据,其中,5个搜索结果数据的优先级为1,12个搜索结果数据的优先级为2,3个搜索结果数据的优先级为3,则将5个优先级均为1的搜索结果数据组合为优先级也为1的数据集合a1,将12个优先级均为2的搜索结果数据组合为优先级也为2的数据集合a2,将3个优先级均为3的搜索结果数据组合为优先级也为3的数据集合a3,再按照优先级顺序对3个数据集合进行排序,得到a1>a2>a3。S207,根据各数据集合分别对应的业务排序表达式,分别计算所述各数据 集合中的搜索结果数据的第二业务得分值;S208,根据所述各数据集合中的搜索结果数据的第二业务得分值,分别对所述各数据集合中的搜索结果数据进行排序,以得到所述至少一个搜索结果数据的最终排序顺序;具体的,所述搜索排序装置对各数据集合进行优先级排序后,可以根据各数据集合分别对应的业务排序表达式,分别计算所述各数据集合中的搜索结果数据的第二业务得分值,再根据所述各数据集合中的搜索结果数据的第二业务得分值,分别对所述各数据集合中的搜索结果数据进行排序,以得到所述至少一个搜索结果数据的最终排序顺序。以表3为例,优先级为1的数据集合对应的业务排序表达式为authority_-distance,优先级为2的数据集合对应的业务排序表达式为docWeight_-distance_authority,优先级为3的数据集合对应的业务排序表达式为docWeight_authority_-distance;对于优先级为1的数据集合,可以计算优先级为1的数据集合中的各个搜索结果数据的authority值和distance值,并先按照authority值从大到小进行排序,即按照权威度值进行排序,当存在权威度值相同的搜索结果数据时,再对权威度值相同的搜索结果数据按照distance值从小到大的顺序进行排序,即距离越近的排越前面;同样的,对于优先级为2的数据集合,计算优先级为2的数据集合中的各个搜索结果数据的docWeight值、distance值、authority值,并先按照docWeight值从大到小进行排序,再对docWeight值相同的搜索结果数据按照distance值从小到大的顺序进行排序,最后再对docWeight值相同且distance值也相同的搜索结果数据按照authority值从大到小进行排序;同样的,对于优先级为3的数据集合,其排序过程与优先级为2的数据集合相类似,这里不再进行赘述;在三个数据集合中的各个搜索结果数据都进行排序后,即可得到所述至少一个搜索结果数据的最终排序顺序。本发明实施例通过获取与搜索关键字相关的至少一个搜索结果数据,并根据至少一个数据范围表达式确定各搜索结果数据对应的优先级,再将相同优先级的搜索结果组合为具有对应优先级的数据集合,并按照优先级顺序对至少一个数据集合进行排序,根据各数据集合分别对应的业务排序表达式,分别对各数据集合中的搜索结果数据进行排序,以得到所有搜索结果数据的最终排序顺序,由此可见,通过优先级排序以及对各数据集合中的搜索结果数据的二次排 序,可以提高排序结果的准确度,而且数据范围表达式和业务排序表达式不再依赖于权重系数,从而可以降低搜索排序的配置门槛。请参见图3,是本发明实施例提供的一种搜索排序装置1的结构示意图,所述搜索排序装置1可以包括:获取模块10、确定组合模块20、排序模块30;所述获取模块10,用于获取搜索关键字,并根据所述搜索关键字获取至少一个搜索结果数据;具体的,所述获取模块10可以获取用户所输入的搜索关键字,其中,所述搜索排序装置1可以应用于浏览器中,因此,用户可以通过浏览器输入所述搜索关键字。所述获取模块10获取到所述搜索关键字后,可以根据所述搜索关键字获取至少一个搜索结果数据。例如,所述搜索关键字为“四川火锅”,则所述至少一个搜索结果数据可以包括各种与四川火锅相关联的饭店。进一步的,为了将所述至少一个搜索结果数据进行准确的排序,需要在获取搜索关键字之前,在预设的业务排序因子集合中获取至少一个业务排序因子,并将所述至少一个业务排序因子组合构建为至少一个数据范围表达式和至少一个业务排序表达式。所述确定组合模块20,用于根据至少一个数据范围表达式确定所述至少一个搜索结果数据对应的优先级,并将相同优先级的搜索结果组合为具有对应优先级的数据集合,并按照优先级顺序对至少一个数据集合进行排序;具体的,所述获取模块10获取到所述至少一个搜索结果数据后,所述确定组合模块20可以根据至少一个数据范围表达式确定所述至少一个搜索结果数据分别对应的优先级,并将相同优先级的搜索结果组合为具有对应优先级的数据集合,并按照优先级顺序对至少一个数据集合进行排序。以上述图1对应实施例中的表1为例,表1中的数据范围表达式分别为:“exactmatch>0”、“textRelLevel>2”、“textRelLevel≥1”;“exactmatch>0”和“textRelLevel>2”分别绑定的业务排序表达式均为“authority_docWeight”,“textRelLevel≥1”绑定的业务排序表达式为“docWeight_authority”。“exactmatch>0”的优先级为1,“textRelLevel>2”的优先级为2,“textRelLevel≥1”的优先级为3。其中,“exactmatch>0”的优先级为1表示的是符合精确匹配结果的搜索结果数据为优先级最高的数据。其中,用户可以通过按键对任意一个数据范围表达式进行编辑或删除,也可以对任意一个业务排序表达式进行编辑或删除。若存在10个搜 索结果数据,其中,有3个搜索结果数据满足exactmatch>0,则所述确定组合模块20将这三个搜索结果数据的优先级确定为1;有5个搜索结果数据的exactmatch=0,但满足textRelLevel>2,则将这5个搜索结果数据的优先级确定为2;剩余的两个搜索结果数据的textRelLevel≤2,但满足textRelLevel≥1,则将这两个搜索结果数据的优先级确定为3;所述确定组合模块20再将三个优先级为1的搜索结果数据组合为一个优先级为1的数据集合,将5个优先级为2的搜索结果数据组合为一个优先级为2的数据集合,将2个优先级为3的搜索结果数据组合为一个优先级为3的数据集合,然后再将优先级为1的数据集合排在最前面,将优先级为3的数据集合排在最后面。所述排序模块30,用于根据各数据集合分别对应的业务排序表达式,分别对所述各数据集合中的搜索结果数据进行排序,以得到所述至少一个搜索结果数据的最终排序顺序;具体的,对各数据集合进行优先级排序后,所述排序模块30可以根据各数据集合分别对应的业务排序表达式,分别对所述各数据集合中的搜索结果数据进行排序,以得到所述至少一个搜索结果数据的最终排序顺序。以上述表1为例,优先级为1的数据集合对应的业务排序表达式为authority_docWeight,优先级为2的数据集合对应的业务排序表达式为authority_docWeight,优先级为3的数据集合对应的业务排序表达式为docWeight_authority;对于优先级为1的数据集合,所述排序模块30可以根据authority对优先级为1的数据集合中的各个搜索结果数据进行排序,即按照权威度值进行排序,当存在权威度值相同的搜索结果数据时,再根据docWeight对权威度值相同的搜索结果数据进行排序,即按照综合得分情况进行排序;同样的,对于优先级为2的数据集合,所述排序模块30也是先使用authority排序,再对权威度值相同的搜索结果数据使用docWeight排序;对于优先级为3的数据集合,所述排序模块30先使用docWeight排序,再对综合得分情况相同的搜索结果数据进行authority排序;在三个数据集合中的搜索结果数据分别根据对应的业务排序表达式进行排序后,即可得到所有搜索结果数据的最终排序顺序。其中,每个数据范围表达式和每个业务排序表达式均是由预设的至少一个业务排序因子组成的。所述数据范围表达式和所述业务排序表达式中的业务排序因子可以由用户根据自身需求进行任意选择和修改,且无需对所述数据范围 表达式和所述业务排序表达式进行权重系数的配置,从而大大降低了搜索排序的配置门槛。进一步的,请参见图4,是本发明实施例提供的一种确定组合模块20的结构示意图,所述确定组合模块20可以包括:第一确定单元201、第二确定单元202、组合单元203;所述第一确定单元201,用于根据至少一个数据范围表达式计算所述至少一个搜索结果数据中各搜索结果数据的第一业务得分值,并确定所述各搜索结果数据的第一业务得分值所满足的数据范围表达式;每个数据范围表达式对应一个优先级;具体的,所述第一确定单元201可以根据至少一个数据范围表达式计算所述至少一个搜索结果数据中各搜索结果数据的第一业务得分值,每个搜索结果数据的第一业务得分值均包括与各数据范围表达式分别对应的得分值。以上述图2对应实施例中的表3为例,若有4个搜索结果数据分别为A、B、C、D,A的exactmatch=1,A的textRelLevel=4;B的exactmatch=0,B的textRelLevel=4;C的exactmatch=0,C的textRelLevel=3;D的exactmatch=0,D的textRelLevel=2,由此可见,所述第一确定单元201可以确定A满足表3中的所有数据范围表达式,B和C均满足表3中的“textRelLevel≥3”以及数据范围表达式“1”,而D仅满足表3中的数据范围表达式“1”。所述第二确定单元202,用于根据所述各搜索结果数据的第一业务得分值所满足的数据范围表达式所对应的优先级,确定所述各搜索结果数据对应的优先级;具体的,所述第二确定单元202在所述各搜索结果数据的第一业务得分值所满足的至少一个数据范围表达式中,分别选择出所述各搜索结果数据所满足的具有最高优先级的数据范围表达式,并将所述各搜索结果数据所满足的具有最高优先级的数据范围表达式所对应的优先级分别作为所述各搜索结果数据对应的优先级。继续以上述表3为例,若有4个搜索结果数据分别为A、B、C、D,且A满足表3中的所有数据范围表达式,B和C均满足表3中的“textRelLevel≥3”以及数据范围表达式“1”,而D仅满足表3中的数据范围表达式“1”,此时,所述第二确定单元202可以确定A所满足的具有最高优先级的数据范围标表达式为“exactmatch>0”,“exactmatch>0”的优先级为1,因此A 的优先级也为1;B和C所满足的具有最高优先级的数据范围标表达式为“textRelLevel≥3”,“textRelLevel≥3”的优先级为2,因此B和C的优先级也为2;而D所满足的具有最高优先级的数据范围标表达式为“1”,数据范围标表达式“1”的优先级为3,因此D的优先级也为3。所述组合单元203,用于将相同优先级的搜索结果组合为具有对应优先级的数据集合,并按照优先级顺序对至少一个数据集合进行排序;具体的,所述组合单元203可以将相同优先级的搜索结果组合为具有对应优先级的数据集合,并按照优先级顺序对至少一个数据集合进行排序。例如,若存在20个搜索结果数据,其中,5个搜索结果数据的优先级为1,12个搜索结果数据的优先级为2,3个搜索结果数据的优先级为3,则所述组合单元203将5个优先级均为1的搜索结果数据组合为优先级也为1的数据集合a1,将12个优先级均为2的搜索结果数据组合为优先级也为2的数据集合a2,将3个优先级均为3的搜索结果数据组合为优先级也为3的数据集合a3,再按照优先级顺序对3个数据集合进行排序,得到a1>a2>a3。进一步的,请参见图5,是本发明实施例提供的一种排序模块30的结构示意图,所述排序模块30可以包括:计算单元301、排序单元302;所述计算单元301,用于根据各数据集合分别对应的业务排序表达式,分别计算所述各数据集合中的搜索结果数据的第二业务得分值;所述排序单元302,用于根据所述各数据集合中的搜索结果数据的第二业务得分值,分别对所述各数据集合中的搜索结果数据进行排序,以得到所述至少一个搜索结果数据的最终排序顺序;具体的,对各数据集合进行优先级排序后,所述计算单元301可以根据各数据集合分别对应的业务排序表达式,分别计算所述各数据集合中的搜索结果数据的第二业务得分值,再由所述排序单元302根据所述各数据集合中的搜索结果数据的第二业务得分值,分别对所述各数据集合中的搜索结果数据进行排序,以得到所述至少一个搜索结果数据的最终排序顺序。以上述表3为例,优先级为1的数据集合对应的业务排序表达式为authority_-distance,优先级为2的数据集合对应的业务排序表达式为docWeight_-distance_authority,优先级为3的数据集合对应的业务排序表达式为docWeight_authority_-distance;对于优先级为1的数据集合,所述计算单元301可以计算优先级为1的数据集合中的 各个搜索结果数据的authority值和distance值,并由所述排序单元302先按照authority值从大到小进行排序,即按照权威度值进行排序,当存在权威度值相同的搜索结果数据时,再对权威度值相同的搜索结果数据按照distance值从小到大的顺序进行排序,即距离越近的排越前面;同样的,对于优先级为2的数据集合,计算优先级为2的数据集合中的各个搜索结果数据的docWeight值、distance值、authority值,并先按照docWeight值从大到小进行排序,再对docWeight值相同的搜索结果数据按照distance值从小到大的顺序进行排序,最后再对docWeight值相同且distance值也相同的搜索结果数据按照authority值从大到小进行排序;同样的,对于优先级为3的数据集合,其排序过程与优先级为2的数据集合相类似,这里不再进行赘述;在三个数据集合中的各个搜索结果数据都进行排序后,即可得到所述至少一个搜索结果数据的最终排序顺序。本发明实施例通过获取与搜索关键字相关的至少一个搜索结果数据,并根据至少一个数据范围表达式确定各搜索结果数据对应的优先级,再将相同优先级的搜索结果组合为具有对应优先级的数据集合,并按照优先级顺序对至少一个数据集合进行排序,根据各数据集合分别对应的业务排序表达式,分别对各数据集合中的搜索结果数据进行排序,以得到所有搜索结果数据的最终排序顺序,由此可见,通过优先级排序以及对各数据集合中的搜索结果数据的二次排序,可以提高排序结果的准确度,而且数据范围表达式和业务排序表达式不再依赖于权重系数,从而可以降低搜索排序的配置门槛。再请参见图6,是本发明实施例提供的另一种搜索排序装置1的结构示意图,所述搜索排序装置1可以包括上述图3对应实施例中的获取模块10、确定组合模块20、排序模块30,进一步的,所述搜索排序装置1还可以包括:表达式构建模块40、绑定设置模块50;所述表达式构建模块40,用于在预设的业务排序因子集合中获取至少一个业务排序因子,并将所述至少一个业务排序因子组合构建为至少一个数据范围表达式和至少一个业务排序表达式;所述绑定设置模块50,用于为所述至少一个数据范围表达式中各数据范围表达式分别绑定对应的所述业务排序表达式,并为所述各数据范围表达式分别设置对应的优先级;具体的,所述业务排序因子集合中的业务排序因子分别为:业务综合得分 因子docWeight、权威度值因子authority、精确匹配判断因子exactmatch、匹配程度分档因子textRelLevel、位置距离因子distance;其中,docWeight代表每条结果文档的综合得分情况,集合了文本相关性,权威度等因子;authority代表每条结果文档的权威度值(该字段由用户指定的某一个字段);exactmatch代表结果文档是否有字段与检索串精确匹配;textRelLevel代表结果文档与检索串的文本匹配程度分档;distance代表检索者所在位置与结果文档所在位置的地理位置距离(单位为米),只对LBS业务生效。其中,textRelLevel目前主要有以下四个分档:4:perfect,精确匹配,exactmatch为1,例如检索串为AB,结果文档为AB,则该值为4;3:good,子串匹配,检索串是结果文档的子串,例如检索串为AB,结果文档为ABC,则该值为3;2:normal,proximity匹配,检索串是结果文档的近似结果,例如检索串为AB,结果文档为A*B,A*,B*,则该值为2;1:bad,内容不相关,检索串与结果文档字段完全不相关。除上述业务排序因子之外,用户还可以使用文档中自定义的属性数值字段,即所述业务排序因子集合还包括自定义属性因子;同时,提供四则运算符,关系运算符,逻辑运算符等来对数值进行二次加工处理。因此,搜索排序装置1可以根据所述业务排序因子集合中的业务排序因子构建至少一个数据范围表达式和至少一个业务排序表达式。其中,所述数据范围表达式和所述业务排序表达式所支持的字段和基本运算类型可以参见上述图2对应实施例中的表2。所述表达式构建模块40根据所述业务排序因子集合中的业务排序因子构建至少一个数据范围表达式和至少一个业务排序表达式后,所述绑定设置模块50可以为各个数据范围表达式分别绑定对应的所述业务排序表达式,并为所述各个数据范围表达式分别设置对应的优先级。以上述图2对应实施例中的表3为例,表3中的数据范围表达式分别为:“exactmatch>0”、“textRelLevel≥3”、“1”;“exactmatch>0”和“textRelLevel>2”分别绑定的业务排序表达式为“authority_-distance”和“docWeight_-distance_authority”,数据范围表达式“1”绑定的业务排序表达式为“docWeight_authority_-distance”。“exactmatch>0”的优先级为1,“textRelLevel≥3”的优先级为2, 数据范围表达式“1”的优先级为3。其中,满足“exactmatch>0”的搜索结果数据均为符合精确匹配结果的搜索结果数据;满足“textRelLevel≥3”的搜索结果数据均为文本匹配程度分档大于或等于3的搜索结果数据;所有搜索结果数据均满足数据范围表达式“1”。其中,用户可以通过按键对任意一个数据范围表达式进行编辑或删除,也可以对任意一个业务排序表达式进行编辑或删除。所述表达式构建模块40在配置如表3中所示的数据范围表达式以及业务排序表达式时,具体在后台进程生成如下代码:其中,对数据范围表达式以及业务排序表的配置格式为json形式,该配置通过cgi进行持久化,可实现业务级别的配置;检索粒度的配置则需通过检索接口参数传入。本发明实施例通过获取与搜索关键字相关的至少一个搜索结果数据,并根据至少一个数据范围表达式确定各搜索结果数据对应的优先级,再将相同优先级的搜索结果组合为具有对应优先级的数据集合,并按照优先级顺序对至少一个数据集合进行排序,根据各数据集合分别对应的业务排序表达式,分别对各数据集合中的搜索结果数据进行排序,以得到所有搜索结果数据的最终排序顺序,由此可见,通过优先级排序以及对各数据集合中的搜索结果数据的二次排序,可以提高排序结果的准确度,而且数据范围表达式和业务排序表达式不再依赖于权重系数,从而可以降低搜索排序的配置门槛。请参见图7,是本发明实施例提供的又一种搜索排序装置的结构示意图。如图7所示,所述搜索排序装置1000可以包括:至少一个处理器1001,例如CPU,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非 不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图7所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据传输应用程序。在图7所示的搜索排序装置1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;网络接口1004主要用于与业务服务器进行数据传输;而处理器1001可以用于调用存储器1005中存储的数据传输应用程序,并具体执行以下操作:获取搜索关键字,并根据所述搜索关键字获取至少一个搜索结果数据;根据至少一个数据范围表达式确定所述至少一个搜索结果数据对应的优先级,并将相同优先级的搜索结果组合为具有对应优先级的数据集合,并按照优先级顺序对至少一个数据集合进行排序;根据各数据集合分别对应的业务排序表达式,分别对所述各数据集合中的搜索结果数据进行排序,以得到所述至少一个搜索结果数据的最终排序顺序;其中,每个数据范围表达式和每个业务排序表达式均是由预设的至少一个业务排序因子组成的。在一个实施例中,所述处理器1001在执行所述根据至少一个数据范围表达式确定所述至少一个搜索结果数据对应的优先级,并将相同优先级的搜索结果组合为具有对应优先级的数据集合,并按照优先级顺序对至少一个数据集合进行排序时,具体执行以下操作:根据至少一个数据范围表达式计算所述至少一个搜索结果数据中各搜索结果数据的第一业务得分值,并确定所述各搜索结果数据的第一业务得分值所满足的数据范围表达式;每个数据范围表达式对应一个优先级;根据所述各搜索结果数据的第一业务得分值所满足的数据范围表达式所对应的优先级,确定所述各搜索结果数据对应的优先级;将相同优先级的搜索结果组合为具有对应优先级的数据集合,并按照优先级顺序对至少一个数据集合进行排序。在一个实施例中,所述处理器1001在执行所述根据各数据集合分别对应的业务排序表达式,分别对所述各数据集合中的搜索结果数据进行排序,以得到所述至少一个搜索结果数据的最终排序顺序时,具体执行以下操作:根据各数据集合分别对应的业务排序表达式,分别计算所述各数据集合中的搜索结果数据的第二业务得分值;根据所述各数据集合中的搜索结果数据的第二业务得分值,分别对所述各数据集合中的搜索结果数据进行排序,以得到所述至少一个搜索结果数据的最终排序顺序。在一个实施例中,所述处理器1001在执行所述获取搜索关键字,并根据所述搜索关键字获取至少一个搜索结果数据之前,还执行以下操作:在预设的业务排序因子集合中获取至少一个业务排序因子,并将所述至少一个业务排序因子组合构建为至少一个数据范围表达式和至少一个业务排序表达式;为所述至少一个数据范围表达式中各数据范围表达式分别绑定对应的所述业务排序表达式,并为所述各数据范围表达式分别设置对应的优先级。其中,所述业务排序因子为业务综合得分因子、权威度值因子、精确匹配判断因子、匹配程度分档因子、位置距离因子以及自定义属性因子中的任意一个。本发明实施例通过获取与搜索关键字相关的至少一个搜索结果数据,并根据至少一个数据范围表达式确定各搜索结果数据对应的优先级,再将相同优先级的搜索结果组合为具有对应优先级的数据集合,并按照优先级顺序对至少一个数据集合进行排序,根据各数据集合分别对应的业务排序表达式,分别对各数据集合中的搜索结果数据进行排序,以得到所有搜索结果数据的最终排序顺序,由此可见,通过优先级排序以及对各数据集合中的搜索结果数据的二次排序,可以提高排序结果的准确度,而且数据范围表达式和业务排序表达式不再依赖于权重系数,从而可以降低搜索排序的配置门槛。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1