2013-01-11 112 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