Sphinx排序模式

目前SPHINX支持6种排序模式。分别是:


1. SPH_SORT_RELEVANCE
2. SPH_SORT_ATTR_DESC
3. SPH_SORT_ATTR_ASC
4. SPH_SORT_TIME_SEGMENTS
5. SPH_SORT_EXTENDED
6. SPH_SORT_EXPR

第一种表示按照相关度排序,以降序排序(最佳匹配记录排到最前面)。

第二种表示按照文档属性排序,以降序排序(属性值大的排在前面)。

第三种表示按照文档属性排序,以升序排序(属性值小的记录排在前面)。

第四种表示按照时间段排序(比如最近1小时/1天/1周/1个月),以降序排列,然后是相关度排序,以降序排列。

第五种表示按照扩展语句排序,由文档字段组成的类似SQL语句的排序,可以设置升序或降序。

第六种表示表达式模式,由算术表达式来决定顺序。


例子1:

1. 以权重升序的方式排序

$sph = new SphinxClient();
$sph->SetSortMode(SPH_SORT_EXTENDED, "@weight ASC");

它会以weight的数值按照从小到大的顺序排列搜索出来的记录,在查询的那一瞬间就生产出这个列表。

代码:

// 其他内容...
[matches] => Array
        (
            [0] => Array
                (
                    [id] => 100004
                    [weight] => 1678
                    [attrs] => Array
                        (
                            [cid] => 100004
                            [title] => 香港
                            [name] => xianggang
                            [title_en] => Hongkong
                            [showname] => 
                            [time] => 1517389143
                        )

                )

            [1] => Array
                (
                    [id] => 100614
                    [weight] => 2745
                    [attrs] => Array
                        (
                            [cid] => 100614
                            [title] => 香港迪士尼乐园
                            [name] => xianggangdishinileyuan
                            [title_en] => Hong Kong Disneyland
                            [showname] => 香港迪士尼乐园
                            [time] => 1517389143
                        )

                )

            [2] => Array
                (
                    [id] => 100616
                    [weight] => 2745
                    [attrs] => Array
                        (
                            [cid] => 100616
                            [title] => 香港海洋公园
                            [name] => xiangganghaiyanggongyuan
                            [title_en] => Hongkong Ocean Park
                            [showname] => 香港海洋公园
                            [time] => 1517389143
                        )

                )

        )
// 其他代码...


2. 以权重降序的方式排序

$sph = new SphinxClient();
$sph->SetSortMode(SPH_SORT_EXTENDED, "@weight DESC");

原文地址:https://www.cnblogs.com/ranwuer/p/8393697.html