斯芬克斯面搜索:';与所有';php/java模拟

斯芬克斯面搜索:';与所有';php/java模拟,java,sphinx,thinking-sphinx,faceted-search,Java,Sphinx,Thinking Sphinx,Faceted Search,我有一个带有MVA的文档集,我需要归档所有需要属性的文档(比如说,我需要所有的“新闻”文档都有“java”和“oracle”标记,假设我有标记ID) 在ThinkingSphinx()中,我发现了一个有用的符号: 对于匹配多值属性中的多个值,:with不匹配 你想干什么就干什么。给:所有人都试试看: 据我猜测,这允许过滤具有所有提供属性的文档,而不是获取具有SetFilterRange用法的任何提供属性列表的文档 有人能推荐soluion,至少是标准PHP接口吗?希望我能够将其转换为java。对

我有一个带有MVA的文档集,我需要归档所有需要属性的文档(比如说,我需要所有的“新闻”文档都有“java”和“oracle”标记,假设我有标记ID)

在ThinkingSphinx()中,我发现了一个有用的符号:

对于匹配多值属性中的多个值,:with不匹配 你想干什么就干什么。给:所有人都试试看:

据我猜测,这允许过滤具有所有提供属性的文档,而不是获取具有
SetFilterRange
用法的任何提供属性列表的文档


有人能推荐soluion,至少是标准PHP接口吗?希望我能够将其转换为java。

对setFilter的多个调用都是AND。其中,正如您所注意到的,为一个调用指定多个ID是OR

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

抱歉,无法帮助您了解java语法

啊,太简单了!谢谢!java只是为所有这些方法提供了包装器,特别是Client.SetFilter()
$cl->setFilter('tag_ids',array($tag_id1));
$cl->setFilter('tag_ids',array($tag_id2));
$cl->setFilter('tag_ids',array($tag_id3));