php sphinx 排序,coreseek 自定义词库(三)排序 setsortmode

对于mysql获取数据,可以根据不同的条件来进行排序,同样使用coreseek也有同样的排序功能。

PHP的API中只有 SetSortMode(模式,条件) 方法,他也支持多个字段一次排序。

根据上一篇的数据:

require('sphinxapi.php');

$sc = new SphinxClient();

$sc->SetSortMode(SPH_SORT_ATTR_DESC, 'group_id');

$sc->SetSortMode(SPH_SORT_ATTR_ASC, 'score');

$sc->SetSortMode(SPH_SORT_TIME_SEGMENTS , 'created_time');

$sc->SetSortMode(SPH_SORT_EXPR, "group_id + score");

模式:

SPH_SORT_RELEVANCE 模式, 按相关度降序排列(相关度高的排在前面)

SPH_SORT_ATTR_DESC 模式, 按属性降序排列 (属性值大的排在前面)

SPH_SORT_ATTR_ASC 模式, 按属性升序排列(属性值越小的排在前面)

SPH_SORT_TIME_SEGMENTS 模式, 先按时间段(最近的一小时/天/周/月)降序,再按相关度降序

SPH_SORT_EXTENDED 模式, 按一种类似SQL的方式将列组合起来,升序或降序排列。

SPH_SORT_EXPR 模式,按某个算术表达式排序。

备注:

SPH_SORT_RELEVANCE 默认的模式,按照相关度排序

SPH_SORT_ATTR_DESC 同等与 sql 中的 ORDER BY field DESC

SPH_SORT_ATTR_ASC  同等与 sql 中的 ORDER BY field AC

SPH_SORT_TIME_SEGMENTS 相当于两个条件进行排序,首先按照时间段进行排序,然后在按照相关度进行排序,一般我们会用在 新闻、文章等的搜索排序。注:时间段的划分被定义在源码中,如果需要也可以修改。

SPH_SORT_EXTENDED 指定类型与sql的排序表达式,涉及的属性不要太多,内部属性的名字前加上@ 符号就可以

SPH_SORT_EXPR 使用表达式,比如:在电商中我们可以根据销售量、库存量、收藏量的一个结果进行排序。

参考文档:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值