2012-09-24 253 views
0

我已經安裝了獅身人面像,並且可以使用php api執行搜索。但我有兩個問題。過濾搜索結果sphinx

  1. 在這個測試數據庫中,我有許多產品,每個產品都有一個類別ID。我將如何去創建一個過濾函數,以便在搜索之後的用戶只能從特定類別檢索結果。那是,首先我搜索汽車並且得到10場比賽,然後我選擇類別福特並且只有3場比賽,即與類別福特的汽車。

  2. 我有點困惑獅身人面像搜索我的索引或直接搜索數據庫。我認爲它搜索了索引,但後來我改變了數據庫中的一個文本,並在沒有重新索引的情況下進行搜索,並且我對文本所做的更改顯示在結果中。

所有幫助非常感謝,因爲所有!

回答

0

要創建過濾器,您必須將屬性添加到您的數據源(不要忘了在你的SQL查詢SELECT category_id, ...將其選中):

sql_attr_uint = category_id 

然後你就可以添加過濾器從您的PHP代碼:

$s->SetFilter('category_id', array(43)); 

對於第二個問題,您需要運行索引器來更新數據。

+0

感謝您的回答!我嘗試過濾功能,它工作正常。但是,我仍然對索引感到困惑。我現在更改了db中的一個文本,而沒有重新編排,並且當我搜索時出現了這個變化。這不應該是? – user1009453

+0

@ user1009453所以你的意思是你添加了一個新的關鍵字,搜索了該關鍵字,並且它在結果中返回了?沒有首先運行'indexer'? – Tchoupi

+0

對不起,我的錯誤是,我並沒有首先理解索引。具有更改內容的ROW確實顯示,但新內容在搜索時沒有返回任何ROW。再次感謝! – user1009453