当前位置:首页 > PHP教程 >

Sphinx 排序模式 SetSortMode

发布时间:2020-03-09 08:11:29 作者:佚名 阅读:(85)

今天开发的项目中使用到了sphinx,需要对数据进行按照指定的要求进行排序,用到了SetSortMode排序模式,接下来吾爱编程就为大家介绍一下sphinx的SetSortMode排序模式,有需要的小伙伴可以参考一下:

1、类文件中的常用的排序模式:

define ( "SPH_SORT_RELEVANCE",      0 );
define ( "SPH_SORT_ATTR_DESC",      1 );
define ( "SPH_SORT_ATTR_ASC",       2 );
define ( "SPH_SORT_TIME_SEGMENTS",  3 );
define ( "SPH_SORT_EXTENDED",       4 );
define ( "SPH_SORT_EXPR",           5 );

2、SPH_SORT_RELEVANCE模式:

    该模式是按相关度降序排列(最好的匹配排在最前面),忽略任何附加的参数,永远按相关度评分排序。等价于在扩展模式中按"@weight DESC, @id ASC"排序。

3、SPH_SORT_ATTR_DESC模式:

    该模式按属性降序排列 (属性值越大的越是排在前面),在排序的时候仅要求一个属性名即可。

4、SPH_SORT_ATTR_ASC模式:

    该模式按属性升序排列(属性值越小的越是排在前面),在排序的时候仅要求一个属性名即可。

5、SPH_SORT_TIME_SEGMENTS模式:

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

    时间段是根据搜索发生时的当前时间戳计算的,因此结果随时间而变化。

6、SPH_SORT_EXTENDED模式:

    该模式是按一种类似SQL的方式将列组合起来,升序或降序排列。我们可以指定一个类似SQL的排序表达式,但涉及的属性(包括内部属性)不能超过5个。

    五个已知的内置属性:   

 @id (匹配文档的 ID)
 @weight (匹配权值)
 @rank (等同 weight)
 @relevance (等同 weight)
 @random (随机顺序返回结果)

    PS:@rank 和 @relevance 只是 @weight 的别名。

7、SPH_SORT_EXPR模式:

    该模式按某个算术表达式排序。我们可以对匹配项按任何算术表达式排序,表达式中的项可以是属性值,内部属性(@id和@weight),算术运算符和一些内建的函数。

    该模式支持的函数和表达式有如下一些:

    运算符: +, -, *, /, <, > <=, >=, =, <>.    
    布尔操作符: AND, OR, NOT.
    无参函数: NOW().
    一元函数(一个参数): ABS(), CEIL(), FLOOR(), SIN(), COS(), LN(), LOG2(), LOG10(), EXP(), SQRT(), BIGINT().
    二元函数(两个参数): MIN(), MAX(), POW(), IDIV().
    其他函数: IF(), INTERVAL(), IN(), GEODIST().

以上就是吾爱编程为大家介绍的关于Sphinx的SetSortMode排序模式的详细介绍,了解更多相关文章请关注吾爱编程网!

欢迎分享转载→ Sphinx 排序模式 SetSortMode

© 2015-2019 - 吾爱编程网 版权所有 苏ICP备18033726号-1关于我们 - 网站声明 - 联系我们