882
iPhone_iPad_Mac_手机_平板_苹果apple
搜索相关性配置__应用高级配置_产品使用手册_开放搜索-阿里云
排序表达式(Ranking Formula)允许用户为应用自定义搜索结果排序方式,通过在查询请求中指定表达式来对结果排序。排序表达式支持基本运算(算术运算、关系运算、逻辑运算、位运算、条件运算)、数学函数和排序特征(feature)等。Open Search对于几种经典的应用(如论坛、资讯等)提供了表达式模板,用户可根据自己数据的特点,选择合适的表达式模板,并以此为基础进行修改,生成自己的表达式。
在进行相关性排序之前,首先要了解下系统排序策略:通过query等子句找到符合条件的文档后,会进入排序阶段(具体参见sort子句),如果未指定sort子句或者sort子句中显式指定了RANK,那么都将进入到相关性算分阶段。
搜索引擎对于检索性能要求比较高,为此,系统开放了两阶段排序过程:粗排和精排。粗排即是海选,从检索结果中快速找到质量高的文档,取出TOP N个结果再按照精排进行精细算分,最终返回最优的结果给用户。由此可见,粗排对性能影响比较大,精排对最终排序效果影响比较大。因此,粗排要求尽量简单有效,只提取精排中的关键因子即可。
如何设计粗精排公式要取决于实际搜索场景的需求,最佳实践-功能篇有个《相关性实战》的文章,较详细介绍了在几个典型场景下如何来思考和设计排序因子,大家可以参考。
流程演示
主界面:
添加新粗排表达式或编辑现有表达式
添加新精排表达式或编辑现有表达式
编辑表达式内容完成
基本运算
运算 | 运算符 | 说明 |
---|---|---|
一元运算 | - | 负号,功能为对某个表达式的值取负值,如-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。 |
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提供了丰富的内置特征函数,如LBS类、文本类、时效类等,可以用在排序表达式中,相互组合实现强大的相关性排序效果。
最后更新:2016-11-23 16:04:03
上一篇:
索引重建__应用基本配置_产品使用手册_开放搜索-阿里云
下一篇:
搜索相关性函数__应用高级配置_产品使用手册_开放搜索-阿里云
去重设备统计__查询相关_API 列表_OpenAPI 2.0_移动推送-阿里云
专有网络API的鉴权规则__借助RAM实现子账号对主账号的VPC资源访问_API参考_专有网络 VPC-阿里云
视频转码回调消息讲解___视频专区_媒体转码-阿里云
Demo 工程配置__MQ Demo 工程_消息队列 MQ-阿里云
SetSecurityPreference__安全设置接口_RAM API文档_访问控制-阿里云
Queue__基本概念_API使用手册_消息服务-阿里云
HTTP 协议规范__HTTP 接入(简单)_消息队列 MQ-阿里云
初始化__Android SDK_SDK使用手册_消息服务-阿里云
请求签名机制__调用方式_API使用手册_消息服务-阿里云
升级流程__购买指导_云解析-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云