我正在尝试使用 Sphinx (PHP) 进行排序以按价格顺序显示,但是当我这样做时,它会在 1.75 英镑之前显示 10 英镑,所以我需要像在 mySQL 中一样使用 ABS。
我试过这个:
$s->SetSortMode (SPH_SORT_EXPR, "ABS(display_price) ASC" );
它似乎不起作用。
有人可以帮忙吗?
我正在尝试使用 Sphinx (PHP) 进行排序以按价格顺序显示,但是当我这样做时,它会在 1.75 英镑之前显示 10 英镑,所以我需要像在 mySQL 中一样使用 ABS。
我试过这个:
$s->SetSortMode (SPH_SORT_EXPR, "ABS(display_price) ASC" );
它似乎不起作用。
有人可以帮忙吗?
检查是否 display_price 属性在搜索索引中被视为小数
可能你有
sql_attr_string = display_price
代替
sql_attr_float = display_price
或者
sql_attr_bigint = display_price
SPH_SORT_EXPR 总是降序排列。ASC/DESC 仅用于 EXTENDED 模式。
要将其“反转”为升序,可以将其构建到表达式中。
$s->SetSortMode (SPH_SORT_EXPR, "1000000-CEIL(ABS(display_price*100.0))" );