Sphinx 按 php api 中的第二个 id 过滤

Sphinx filter by second id in php api

几周以来我一直面临问题,我无法通过第二个 ID 过滤我的搜索结果

这是我的来源

source src1
{
type = mysql
sql_host = ****
sql_user = ****
sql_pass = ****
sql_db = ****
sql_port = 3306 # optional, default is 3306
sql_query_range = SELECT MIN(id),MAX(id) FROM ***
sql_range_step = 100000
sql_query = \
SELECT id,sid,nume,durata,hits, UNIX_TIMESTAMP(data) AS data \
FROM *** WHERE id>=$start AND id<=$end AND img_down='1' AND cat='0'

sql_attr_float = sid
sql_attr_float = durata
sql_attr_float = hits
sql_attr_float = data
}

这是我的 php 代码:

$array = Array(4,5,6,7,8,9,15,17,19,21,22,23,24,25,26,29,32,33,37,39,41,45,48,51,52,55,56,58,62,63,72);
$i->SetMatchMode(SPH_MATCH_ANY);
$i->setSortMode(SPH_SORT_EXTENDED,'@relevance DESC, hits DESC, data DESC');
$i->SetFilter('sid', $array);

所以每次当我 运行 我在 SphinxTools 中成为脚本时都会出现此错误消息:

 /* error=index test1: unsupported filter type 'intvalues' on float column */

所以我尝试了 $i->setFilterFloatRange 但后来我什么都没有也尝试了 $i->SetFilterRange 但是没有任何反应,我的意思是我没有错误消息只有 0 个结果

谢谢

不需要将所有字段都索引为浮点数。我的猜测是 id、sid,最有可能的命中也是整数字段。

sql_attr_uint = sid
sql_attr_uint = durata
sql_attr_uint = hits
sql_attr_uint = data

定义为整型字段。这样过滤效果会好很多