2014-01-30 33 views
0

我嘗試獅身人面像獅身人面像搜索短語只在所選列

search --index goods "new @category_id 711" 

搜索與搜索錯誤結束,因爲「@category_id 711」 但它應該是正確的方法,如何確切的列搜索 看到http://sphinxsearch.com/docs/current.html#extended-syntax

但sphinx.conf中是

sql_query = SELECT id, name, category_id FROM ... 

sql_attr_uint = category_id 

,不想設置

$sphinx->setFilter('category_id', array(711), false); 

bucause限制它的結果只能用於類711

我需要增加重量CATEGORY_ID,並在名稱

$sphinx->SetFieldWeights(array('name' => 1000, 'category_id' => 250)); 

搜索文本的其餘而是「711」不應該在搜索「名稱「

回答

0

幾件事情在這裏!

'搜索'命令默認搜索模式,不擴展。所以如果你使用擴展語法,必須特別啓用擴展模式。添加-e


在您的配置文件中,您已將其設置爲屬性。屬性不能在@field語法中訪問。即他們沒有全文索引,所以你不能查詢他們。

所以如果想要它在搜索查詢中,需要創建一個字段。 (不是屬性)。


然後可以做一個查詢new @category_id 711 - 但這意味着該查詢必須匹配new@category_id 711,所以它的行爲完全一樣使用setfilter。

如果你只是想「升級」這一類,需要重新安排查詢,因此,它只會匹配「新」,而是品類位被包括在內,這樣你就可以影響排名

例如
(new) | (new @category_id 711) 

但是,您還需要更改排名模式,以便它會更改排名。用各種模式進行實驗來決定你喜歡哪一種。 SPH_RANKING_WORDCOUNT,是最基本的,但可能不夠好。