发布时间:2020-11-24 11:20:28 作者:佚名 阅读:(10)
最近在做的一个项目中使用到了sphinx,在搜索的时候展示的结果总是不理想,查找资料说可以通过Sphinx的排序模式来优化,接下来吾爱编程就为大家介绍一下sphinx排序不理想的解决方法,有需要的小伙伴可以参考一下:
模式 | 描述 |
---|---|
SPH_SORT_RELEVANCE | 该模式是按相关度降序排列(最好的匹配排在最前面) |
SPH_SORT_ATTR_DESC | 该模式按属性降序排列 (属性值越大的越是排在前面) |
SPH_SORT_ATTR_ASC | 该模式按属性升序排列(属性值越小的越是排在前面) |
SPH_SORT_TIME_SEGMENTS | 该模式先按时间段(最近一小时/天/周/月)降序,再按相关度降序。 |
SPH_SORT_EXTENDED | 该模式是按一种类似SQL的方式将列组合起来,升序或降序排列 |
SPH_SORT_EXPR | 该模式按某个算术表达式排序。表达式中的项可以是属性值,内部属性(@id和@weight),算术运算符和一些内建的函数 |
我们可以根据自己的需求,选中对应的排序模式,一般最常用的两种:SPH_SORT_RELEVANCE和SPH_SORT_EXTENDED模式。这里我们主要讲一下SPH_SORT_EXTENDED模式的
(1)、 五个已知的内置属性:
@id (匹配文档的 ID) @weight (匹配权值) @rank (等同 weight) @relevance (等同 weight) @random (随机顺序返回结果)
(2)、文档示例
我们可以在PHP的API文件SphinxClient.php中找到SetSortMode($mode, $sortBy)方法,从上面的文档说明中可知,如果需要设置多个字段依次排序。示例代码如下:
$SphinxClient->SetSortMode(SPH_SORT_EXTENDED, "updatetime desc, title DESC");
(3)、扩展方法():
/** * 设定多重排序条件 * @param Array $orders 排序条件数组 * @example $order = array ( * '0' => array ('attribute' => 'columnname', 'order' => RentSearch::DESC), * '1' => array (//...), * ); */ public function multiOrder($orders) { $orderType = SPH_SORT_EXTENDED; $orderString = ""; foreach ($orders as $order) { switch ($order['order']) { case self::ASC : $orderString += $order['attribute'] . ' ASC, '; break; case self::DESC : $orderString += $order['attribute'] . ' DESC, '; break; default : $orderString += $order['attribute'] . ' DESC, '; break; } } $orderString = substr($orderString, 0, strlen($orderString)-2); $this->SetSortModel($orderType, $orderString); }
以上就是吾爱编程为大家介绍的关于sphinx排序不理想的解决方法,了解更多相关文章请关注吾爱编程网!
欢迎分享转载→ 详解Sphinx的排序
彻底理解PHP的SESSION机制
发布时间:2021-01-08php session封装类
发布时间:2021-01-08php实现精确设置session过期时间的方法
发布时间:2021-01-07php开启与关闭错误提示
发布时间:2021-01-04php过滤不可见0长度的字符u200b
发布时间:2021-01-03php将字符串转为ASCII,php将中文汉字字符串转为ASCII
发布时间:2020-12-27PHP开源ERP和CRM系统
发布时间:2020-12-24Warning:file_get_contents():SSL operation failed with code 1
发布时间:2020-12-23php中ipv6转纯数字和反转
发布时间:2020-12-17Discuz论坛禁止匿名发贴,却出现匿名发帖或回复?找不到发帖用户,DZ如何禁止匿名发帖修改教程
发布时间:2020-12-07© 2015-2021 - 吾爱编程网 版权所有 苏ICP备18033726号-1关于我们 - 网站声明 - 联系我们