0

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

我试过这个:

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

它似乎不起作用。

有人可以帮忙吗?

4

2 回答 2

2

检查是否 display_price 属性在搜索索引中被视为小数

可能你有

sql_attr_string = display_price

代替

sql_attr_float = display_price

或者

sql_attr_bigint = display_price

  • 更新
于 2013-01-03T23:06:41.380 回答
1

SPH_SORT_EXPR 总是降序排列。ASC/DESC 仅用于 EXTENDED 模式。

要将其“反转”为升序,可以将其构建到表达式中。

$s->SetSortMode (SPH_SORT_EXPR, "1000000-CEIL(ABS(display_price*100.0))" );
于 2012-12-31T15:48:07.800 回答