2013-12-20 62 views
1

我有以下PHP腳本並使用sphinx搜索API。我想搜索自定義關鍵字,但只能在MySQL數據庫的標題列中搜索。Sphinx搜索Api SPH_MATCH_EXTENDED不起作用

$s = new SphinxClient; 
$s->setServer("localhost", 9312); 
$s->setMatchMode(SPH_MATCH_EXTENDED); 
$s->SetLimits(0, 10000); 
$result = $s->Query("@(title) apple"); 

不幸的是這沒有返回值,但是當我使用下面的腳本:

$s = new SphinxClient; 
$s->setServer("localhost", 9312); 
$s->setMatchMode(SPH_MATCH_EXTENDED); 
$s->SetLimits(0, 10000); 
$result = $s->Query("apple"); 

我得到的結果,問題是,腳本中的所有列的搜索。

我在做什麼錯?

我還應該提到,在本地主機上(使用XAMPP)它工作得很好,就像在第一個例子中一樣。

+0

你檢查GetLastError函數(),getLastWarning()?他們經常告訴你爲什麼查詢失敗 – barryhunter

+0

不,我檢查過後,你告訴我,這就是它說:查詢錯誤:沒有字段「標題」在架構中找到 –

+0

有你去那麼:) – barryhunter

回答

1

我注意到的一件事,你沒有明確地注意到哪個索引去搜索 - 所以Query()搜索所有索引。

然後在一臺服務器上有一個不包含@title的索引。

...最大的兼容性(所以它不事關啥子其他指標添加到服務器,也許應該尋找一個特定的指數...

$s->Query("@(title) apple",'my_index'); 
+0

是的,你說得對,這是它沒有工作的原因。 –