思考狮身人面像结合:带参数

时间:2010-09-22 06:54:39

标签: ruby-on-rails full-text-search thinking-sphinx

我想知道如何组合Thinking Sphinx的结果集

我有以下查询:

Model.search :with => {:attribute_1 => id}

我想与之合并:

Model.search :with => {:attribute_2 => id}

只用一次搜索就可以做到这一点吗?我可以做阵列添加,但这似乎不是一个好的解决方案。如果我像这样组合过滤器:

Model.search :with => {:attribute_1 => id, :attribute_2 => id}

结果是两个过滤器的 交叉点 ,这不是所需的输出。有没有办法对过滤器进行OR操作。

1 个答案:

答案 0 :(得分:4)

这实际上归结为Sphinx中的限制 - 在引用过滤器中的属性时没有OR的概念。

也许您可以将这两个属性组合在一起?然后以下工作:

Model.search :with => {:attr_1_and_2 => id}

在你的模型中,如果你正在处理单个值,这肯定会起作用 - 并且可能有值数组:

has [attribute_1, attribute2], :as => :attr_1_and_2