1

MVAで設定されたドキュメントがあり、必要なすべての属性を持つドキュメントをファイリングする必要があります(たとえば、「java」タグと「oracle」タグの両方を持つすべての「ニュース」ドキュメントが必要です。タグIDがあると仮定します)。

ThinkingSphinx(http://pat.github.com/ts/en/searching.html#filters)で、便利な概念を見つけました。

複数値属性の複数の値を一致させるために、:withはあなたが望むことを完全には行いません。代わりに:with_allを試してください:

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

それは、私が推測する限り、ドキュメントを取得する代わりに、使用するために提供された属性リストのいずれかを持つ、提供されたすべての属性を持つドキュメントをフィルタリングすることを可能にしSetFilterRangeます。

少なくとも標準のPHPインターフェースに関して誰かが解決策を提案できますか?私はそれをJavaに変換できることを願っています。

4

1 に答える 1

0

setFilterへの複数の呼び出しはAND演算されます。ここで、1つの呼び出しに複数のIDを指定すると、ORがとられます。

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

申し訳ありませんが、Java構文についてはサポートできません。

于 2013-01-12T18:27:37.280 に答える