我告诉Sphinx将CRC32表单中的一些字符串作为属性索引,如下所示:
sql_query = SELECT [...], CRC32(LOWER(color)) AS color, [...], FROM table
sql_attr_uint = color
我正试图在PHP中进行一些分面搜索,用户可以点击上述颜色之一的链接,而Sphinx将获得另一个搜索请求,其结果如下:
Previous page:
Narrow down results:
if (isset($_GET[$name]))
{
$sphinx->SetFilter('color', intval($_GET['color'])); //
}
[...]
$sphinx->Query($query, 'table');
?>
这里出了问题,因为MySQL的CRC32()返回一个无符号的32位整数,PHP非常有用,不支持2 ^ 31-1.上面的黄色链接暴露了我的问题.
StackOverflow,这可能是一个可接受的解决方法吗?我想在SQL查询方面做一些数学是可能的,但我担心让碰撞的可能性更加严重.
提前致谢.