2013-07-23 65 views
0

我有一個名爲「tags」的字段,它有值(比如說)「Music,Art,Sports,Food」等。我如何在PHP-Sphinx中使用這個字段的setFilter函數。我知道它必須是一個整數,並且應該在PHP中用作數組。所以,如果我使用數字字段作爲標籤,那麼分隔符(在這種情況下是逗號)如何呢?目前,我使用「sql_attr_multi」像這樣...無法使用Sphinx MVA sql_attr_multi

sql_attr_multi = uint tags from field 

我有基於任何用戶選擇的關鍵字,音樂,體育來過濾搜索,食品等。因此,只有MVA是正確的選項來做到這一點。但我只是無法弄清楚,如何做到這一點。我可以將所有標記元素存儲爲數值,並將標記字段設置爲int。但是,逗號或者我將如何將整個字符串(音樂,藝術,體育,食物)轉換爲整數。後來,我如何使用PHP調用setFilter。

任何幫助,高度讚賞。

回答

0

那麼使用MVA,建議您已經爲每個標籤設置了unique-id。

如果你有一個單獨的標籤表(帶有PK)和多對多表連接你的文檔和標籤。 (這是一種非常普通的方式來存儲標籤 - 以正常形式)

如果您有一個包含文本的文本列,將會更容易使用一個字段。可以通過主文本查詢中的字段輕鬆過濾。

香脆奶油@tags食品

例如(這就是擴展模式查詢)

(但是就像你可以用屬性字段不能做分組)

+0

感謝您的答覆。但是,我根本不理解這一點。可能是我的問題不清楚。我將更詳細地闡述這種情況,例如http://stackoverflow.com/questions/17827965/sphinx-multi-value-attribute-filter任何幫助將不勝感激。 – Jay

相關問題