2012-11-07 34 views
0

我需要設置一個索引。Sphinx search sql_attr_multi - where條件

sql_attr_multi =來自查詢的uint類別; SELECT item_id,category_id FROM connections WHERE value = 2

它工作正常如果我將該值設置爲靜態。

該值是一個變量,所以我想通過過濾器分配它,但它不工作,因爲我想過濾「sql_attr_multi」而不是$ sql。

$ cl-> setFilter(「value」,array(2));

謝謝

回答

0

setFilter只能用搜索(searchd進程)。這是一個應用於屬性的過濾器。 根據條件,不能更改sql_attr_multi屬性值的類別(除非重新索引或使用updateAttributes)。 如果數值變化不大,爲每個人創建一個mva屬性。

+0

是的,我在想,但它應該是最後soution :) –

+0

也許updateAttributes是一個解決方案。但是我想在現有的attr中添加一個條件。 –

+0

這是行不通的。這取決於需要什麼。您是否需要搜索特定的類別和價值,您是否需要排序,並根據類別/價值進行分組?您可以創建一個sql_joined_field而不是multi,並將category id與value(類似於100_2)組合在一起,您將爲item_id獲得類似'100_2 101_3 102_2 etc'的內容。這將允許您搜索category_id和value。你也可以保持類別的多屬性使用它進行分組。 – aditirex