2012-11-02 24 views
0

我需要在我的配置文件中为每个索引使用两个sql_attr_uint值。我从之前的文章中发现,不要通过命令行过分相信搜索命令。 Sphinx PHP API order differs from Search Daemon狮身人面像 - 在配置中使用多个sql_attr_uint

我现在的问题是,我uable检索两个sql_attr_uint值由PHP API(通过命令行使用搜索时,但是两者sql_attr_uint值出现)

下面是我的配置文件访问时.. http://pastebin.com/30Si7bw5

当通过PHP API获取结果时,我只能看到sql_attr_uint table_id,而不是名为pub_id的sql_attr_uint。

任何人都可以提出为什么它会这样做吗?

$cl = new SphinxClient(); 
$cl->SetServer($CONF['sphinx_host'], $CONF['sphinx_port']); 
$cl->SetMatchMode($mode); 
$cl->SetLimits(0, 1000); 
// below line commented out atm - to only show those rows with this sql_attr_uint of 760 (is this the correct syntax?) 
//$cl->SetFilter ('pub_id', array(760), FALSE); 
$result = $cl->Query($q); 

回答

2

我猜你没有重新启动searchd propelly。您仍然使用旧索引。

当您重新编制索引时,请确保使用--rotate来导致searchd重新加载。

失败。完全停止搜索,重新索引索引并启动干净的启动。

(你的语法是正确的,别的事情正在进行)

+0

谢谢!! - 旋转工作,我正在做手动(删除数据文件夹,做索引器 - 所有等) – Zabs

+0

啊伟大。 - 旋转是最好的方式。它的理想选择是在crontab中定期重新编制索引。它启动一个很好的干净重新加载,它不应该中断一个活的服务守护进程。 – barryhunter