我想知道如何组合Thinking Sphinx的结果集
我有以下查询:
Model.search :with => {:attribute_1 => id}
我想与之合并:
Model.search :with => {:attribute_2 => id}
只用一次搜索就可以做到这一点吗?我可以做阵列添加,但这似乎不是一个好的解决方案。如果我像这样组合过滤器:
Model.search :with => {:attribute_1 => id, :attribute_2 => id}
结果是两个过滤器的 交叉点 ,这不是所需的输出。有没有办法对过滤器进行OR操作。
答案 0 :(得分:4)
这实际上归结为Sphinx中的限制 - 在引用过滤器中的属性时没有OR的概念。
也许您可以将这两个属性组合在一起?然后以下工作:
Model.search :with => {:attr_1_and_2 => id}
在你的模型中,如果你正在处理单个值,这肯定会起作用 - 并且可能有值数组:
has [attribute_1, attribute2], :as => :attr_1_and_2