【发布时间】:2015-03-06 04:43:58
【问题描述】:
我正在使用 searchkick 库作为产品搜索的弹性搜索客户端。 https://github.com/ankane/searchkick
可以创建'OR'条件和'AND'条件;
AND 运算 Product.search where: {price: {lte: 200}, in_stock: true}
或运算 Product.search where: {or: [[{in_stock: true}, {backordered: true}]]}
但我坚持使用 searchkick 创建 多个 'AND' 'OR' 条件。
我需要类似的东西
A OR B OR (C AND D)
或者我需要这样,
A AND B AND (C OR D)
请指导我,如何实现这一目标
谢谢
【问题讨论】:
-
得到答案 A OR B OR (C AND D) Product.search where: {or: [[{brand: 'nike'}, {in-stock: true}, {price: { lte: 12}, color: 'red'}]]} A AND B AND (C OR D) Product.search where: {brand: 'nike', in-stock: true, or: [ [{price: {lte : 12}}, {color: 'red'}] ]}
-
你应该回答你自己的问题。这样,您可以通过突出显示答案并表明该问题已解决来帮助社区。你也会得到积分;)
标签: ruby-on-rails ruby elasticsearch logical-operators searchkick