2012-11-02 25 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