Php Sphinx中按sql\u attr\u float排序

Php Sphinx中按sql\u attr\u float排序,php,mysql,sorting,indexing,sphinx,Php,Mysql,Sorting,Indexing,Sphinx,我刚刚在sphinx中将价格和销售价格属性添加到我的索引中,使用,$s->SetSortMode(SPH_SORT_EXTENDED,'price desc')排序似乎很好

我刚刚在sphinx中将价格和销售价格属性添加到我的索引中,使用,
$s->SetSortMode(SPH_SORT_EXTENDED,'price desc')排序似乎很好
例如,第一页显示价格为1000-800美元,第二页显示价格为800-500美元,第三页显示价格为500-200美元,然后第四页显示价格为300-100美元或一些随机的价格组合

我想知道狮身人面像是否仍可能按重量事件排序,尽管我还没有明确告诉它。。。这听起来像问题吗

我也愿意沉迷于任何其他想法。此外,我肯定重新索引和旋转了所有索引,斯芬克斯没有返回任何错误

提前感谢你的帮助

以下是我目前使用的所有选项:(更新@barryhunter)


猜猜看,你是在用分组方式吗

如果是,则
SetSortMode
不会设置最终结果的顺序。第三个参数改为
setGroupBy

阅读Group by上的文档,了解这两个排序顺序是如何工作的


否则,存储价格的列类型是什么?也许它没有正确地转换成狮身人面像浮动类型

猜猜看,您使用的是分组方式吗

如果是,则
SetSortMode
不会设置最终结果的顺序。第三个参数改为
setGroupBy

阅读Group by上的文档,了解这两个排序顺序是如何工作的


否则,存储价格的列类型是什么?也许它没有正确地转换成狮身人面像浮动类型

答案是@barryhunter!在一篇评论中提出的

我在mysql中添加了一个新的整数col,名为
sort\u price
,并用
(price*100)
填充它。 然后我在sphinx中添加了col as
sql\u attr\u uint
,排序工作非常完美

$s->SetSortMode(SPH_SORT_EXTENDED,'sort_price desc');

谢谢巴里:)

答案是@barryhunter在评论中提出的

我在mysql中添加了一个新的整数col,名为
sort\u price
,并用
(price*100)
填充它。 然后我在sphinx中添加了col as
sql\u attr\u uint
,排序工作非常完美

$s->SetSortMode(SPH_SORT_EXTENDED,'sort_price desc');

谢谢巴里:)

使用所有选项更新了我的问题。当前没有分组依据:(还有价格和售价的mysql col type\u price:DECIMAL(10,2)我不知道。我唯一的建议是尝试使用sphinx整数属性(例如将价格乘以100得到一个整数)-不确定原因,但它可能更可靠(更快)比使用浮点。这不是一个坏主意。更新了我的问题,使用了所有选项。目前没有分组依据。:(价格和销售价格的mysql col类型:十进制(10,2)我不知道。我唯一的建议是尝试使用sphinx整数属性(例如将价格乘以100得到整数)-不确定原因,但可能是mroe relable(而且比使用float更快)这是个不错的主意。