请稍侯

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的强大:


粗排函数支持 图片加载中


强大的精排函数 图片加载中


图片加载中