opensearch排序
15 September 2015
最近有一个(opensearch)的需求,如下:
end_time
为时间戳,如果当前时间大于end_time
则表示过期
- 没过期,优先按
sort
排序 - 过期了,则按
end_time
倒序排序
咨询了下阿里的工程师们 给出了以下的回复:
云搜索_客户接入(zhengmay8277) (2015-09-15 12:07:38): 这种可以在排序表达式中使 精排 if(now()>endtime,end_time,sort) 注意下sort和end_time之间的值域范围调整下 另外粗排也需要考虑下 云搜索_客户接入(zhengmay8277) (2015-09-15 13:24:52): 上面是排序表达式 搜索后会按照排序表达式分值来排序并返回 所以需要保证排序表达式的分值是符合期望值得。 云搜索_客户接入(zhengmay8277) (2015-09-15 13:28:20): 这种可以在排序表达式中使 精排 if(now()>endtime,end_time,sort) 注意下sort和end_time之间的值域范围调整下 另外粗排也需要考虑下 那你可以试下这样 粗排timeliness(end_time),精排 if(now()>endtime,timeliness(end_time),sort+1)
然后打开管理中心按他们提供资料的配置好,果然可以了!顺便看了下里面的一些排序函数 真心感觉到openSearch的强大:
粗排函数支持
强大的精排函数