开发者社区> 问答> 正文

搜索的相关性如何配置?


排序表达式(Ranking Formula)允许用户为应用自定义搜索结果排序方式,通过在查询请求中指定表达式来对结果排序。排序表达式支持基本运算(算术运算、关系运算、逻辑运算、位运算、条件运算)、数学函数和排序特征(feature)等。Open Search对于几种经典的应用(如论坛、资讯等)提供了表达式模板,用户可根据自己数据的特点,选择合适的表达式模板,并以此为基础进行修改,生成自己的表达式。
在进行相关性排序之前,首先要了解下系统排序策略:通过query等子句找到符合条件的文档后,会进入排序阶段(具体参见sort子句),如果未指定sort子句或者sort子句中显式指定了RANK,那么都将进入到相关性算分阶段。
搜索引擎对于检索性能要求比较高,为此,系统开放了两阶段排序过程:粗排和精排。粗排即是海选,从检索结果中快速找到质量高的文档,取出TOP N个结果再按照精排进行精细算分,最终返回最优的结果给用户。由此可见,粗排对性能影响比较大,精排对最终排序效果影响比较大。因此,粗排要求尽量简单有效,只提取精排中的关键因子即可。
如何设计粗精排公式要取决于实际搜索场景的需求,最佳实践-功能篇有个《相关性实战》的文章,较详细介绍了在几个典型场景下如何来思考和设计排序因子,大家可以参考。

注意

[font=PingFangSC, 'helvetica neue', 'hiragino sans gb', arial, 'microsoft yahei ui', 'microsoft yahei', simsun, sans-serif]粗精排表达式中一律使用 数值或数值字段类型 参与基本运算操作,例如算数,关系,逻辑,条件等运算操作,大部分函数都不支持字符串类型进行运算。 [font=PingFangSC, 'helvetica neue', 'hiragino sans gb', arial, 'microsoft yahei ui', 'microsoft yahei', simsun, sans-serif]

基本运算

运算运算符说明
一元运算-负号,功能为对某个表达式的值取负值,如-1, -max(width)。
算数运算+, -, *, /如width / 10
关系运算==,!= ,>, <, >=, <=如width>=400
逻辑运算and ,or,!如width>=400 and height >= 300, !(a > 1 and b < 2)
位运算&, |,^如 3 & (price ^ pubtime) + (price | pubtime)
条件运算if(cond, thenValue, elseValue)如果cond的值非0,则该if表达式的实际值为thenValue,否则为elseValue。如if(2, 3, 5)的值为3,if(0, 3, 5)的值为5。(注意:不支持字符串字段类型,如literal或text类型都不支持)
in 运算i in [value1, value2, …, valuen]如果i的值在集合[value1, value2, …, valuen]中出现,则该表达式值为1,否则为0。例如: 2 in [2, 4, 6]的值为1,3 in [2, 4, 6]的值为0。


数学函数

函数说明
max(a, b)取a和b的最大值。
min(a, b)取a和b的最小值。
ln(a)对a取自然对数。
log2(a)对a取以2为底的对数。
log10(a)对a取以10为底的对数。
sin(a)正弦函数。
cos(a)余弦函数。
tan(a)正切函数。
asin(a)反正弦函数
acos(a)反余弦函数
atan(a)反正切函数。
ceil(a)对a向上取整,如ceil(4.2)为5。
floor(a)对a向下取整,如floor(4.6)为4。
sqrt(a)对a开方,如sqrt(4)为2。
pow(a,b)返回a的b次幂,如pow(2, 3)为8。
now()返回当前时间,自Epoch (00:00:00 UTC, January 1, 1970)开始计算,单位是秒。
random()返回[0, 1]间的一个随机值。


内置特征函数


OpenSearch提供了丰富的[backcolor=transparent] 内置特征函数,如LBS类、文本类、时效类等,可以用在排序表达式中,相互组合实现强大的相关性排序效果。

流程演示


  1. 主界面:

  2. 添加新粗排表达式或编辑现有表达式

  3. 添加新精排表达式或编辑现有表达式编辑表达式内容

  4. 完成

展开
收起
轩墨 2017-10-25 10:24:03 1682 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
《开放搜索查询分析服务架构分享》 立即下载
《开放搜索统一召回引擎实践》 立即下载
打造高性能高可用的搜索服务——爱奇艺搜索架构实践 立即下载