Sphinx SetSortMode EXPR

时间:2012-12-31 03:16:33

标签: sphinx

我正在尝试使用Sphinx(PHP)进行排序,以便按价格显示,但是当我这样做时,它会在£1.75之前显示10英镑,所以我需要在mySQL中使用ABS。

我试过这个:

$ s-> SetSortMode(SPH_SORT_EXPR,“ABS(display_price)ASC”);

它似乎无法奏效。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

检查是否将display_price属性视为搜索索引中的小数

可能你有

  

sql_attr_string = display_price

而不是

  

sql_attr_float = display_price

  

sql_attr_bigint = display_price

  • 更新

答案 1 :(得分:1)

SPH_SORT_EXPR始终是降序。 ASC / DESC仅用于EXTENDED模式。

要“反转”它以成为一个acsending,可以将它构建到表达式中。

$s->SetSortMode (SPH_SORT_EXPR, "1000000-CEIL(ABS(display_price*100.0))" );