Php Sphinx中按sql\u attr\u float排序
我刚刚在sphinx中将价格和销售价格属性添加到我的索引中,使用,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')排序似乎很好
$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 assql\u attr\u uint
,排序工作非常完美
$s->SetSortMode(SPH_SORT_EXTENDED,'sort_price desc');
谢谢巴里:)答案是@barryhunter在评论中提出的
我在mysql中添加了一个新的整数col,名为sort\u price
,并用(price*100)
填充它。
然后我在sphinx中添加了col assql\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更快)这是个不错的主意。