码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-05-16 02:43:27      阅读:627      评论:0      收藏:0      [点我收藏+]

标签:排序   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 使用表达式,比如:在电商中我们可以根据销售量、库存量、收藏量的一个结果进行排序。

   

参考文档:

   http://www.php.net/manual/zh/sphinxclient.setsortmode.php

   http://blog.c1gstudio.com/archives/734

本文出自 “追梦” 博客,请务必保留此出处http://dreameng.blog.51cto.com/1187899/1411983

coreseek 自定义词库(三)排序 setsortmode,布布扣,bubuko.com

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

标签:排序   setsortmode   

原文地址:http://dreameng.blog.51cto.com/1187899/1411983

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!