2013-01-11 78 views
1

我有一個與MVA設置的文檔,我需要所有必需的attrs(假設,我需要所有'新聞'文檔都'java'和'oracle'標籤,假設我有標籤ID)。sphinx facet搜索:'with_all'類似於php/java

在ThinkingSphinx(http://pat.github.com/ts/en/searching.html#filters)我發現了一個有用的notaion:

對於多值屬性匹配多個值,:有沒有 相當做你想做的。給:with_all一個嘗試,而不是:

Article.search 'pancakes', :with_all => {:tag_ids => @tags.collect(&:id)} 

的是,據我猜測,允許過濾使所提供的所有屬性的文檔,而不是得到的文檔,其提供的任何ATTR列表爲SetFilterRange使用。

任何人都可以提出解決方案,至少在標準的PHP接口方面?希望我能夠將它轉換爲java。

回答

0

多次調用setFilter進行AND運算。當你注意到爲一個呼叫指定多個ID是ORed。

$cl->setFilter('tag_ids',array($tag_id1)); 
$cl->setFilter('tag_ids',array($tag_id2)); 
$cl->setFilter('tag_ids',array($tag_id3)); 

抱歉,不能幫助使用java語法。

+0

啊,太簡單了!謝謝! java只是擁有所有這些方法的包裝器,特別是Client.SetFilter() – sab