Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何使用searchkick进行逻辑操作的复杂查询_Ruby On Rails_Ruby_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Logical Operators_Searchkick - Fatal编程技术网 elasticsearch,logical-operators,searchkick,Ruby On Rails,Ruby,elasticsearch,Logical Operators,Searchkick" /> elasticsearch,logical-operators,searchkick,Ruby On Rails,Ruby,elasticsearch,Logical Operators,Searchkick" />

Ruby on rails 如何使用searchkick进行逻辑操作的复杂查询

Ruby on rails 如何使用searchkick进行逻辑操作的复杂查询,ruby-on-rails,ruby,elasticsearch,logical-operators,searchkick,Ruby On Rails,Ruby,elasticsearch,Logical Operators,Searchkick,Iam使用searchkick库作为elasticsearch客户端进行产品搜索。 可以创建“或”条件和“和”条件 和操作 Product.search其中:{price:{lte:200},in_stock:true} 或操作 Product.search其中:{或:[{in_stock:true},{backordered:true}]} 但我坚持用searchkick创建多个“AND”或“条件 我需要像这样的东西 A或B或(C和D) 或者我需要像这样 A和B以及(C或D) 请指导我,如何

Iam使用searchkick库作为elasticsearch客户端进行产品搜索。

可以创建“或”条件和“和”条件

和操作 Product.search其中:{price:{lte:200},in_stock:true}

或操作 Product.search其中:{或:[{in_stock:true},{backordered:true}]}

但我坚持用searchkick创建多个“AND”或“条件

我需要像这样的东西

A或B或(C和D)

或者我需要像这样

A和B以及(C或D)

请指导我,如何做到这一点

谢谢

A或B或(C和D)

A和B以及(C或D)

更新

(A或B)及(C或D)


找到答案A或B或(C和D)产品。搜索地点:{OR:[{品牌:'nike'},{库存:true},{价格:{lte:12},颜色:'red'}]}A和B以及(C或D)产品。搜索地点:{品牌:'nike',库存:true,或:[{价格:{lte:12},{颜色:'red'}]}你应该回答你自己的问题。通过这种方式,您可以通过突出显示答案并指出此问题已解决来帮助社区。您还将获得积分;)为什么地狱或条件有两个方括号,我花了这么多时间才弄明白它有两个方括号。谢谢汉克斯·迪亚斯。你是否知道如何做(A或B)和(C或D)应该在官方文件中。救生员
Product.search where: {or: [[{brand: 'nike'}, {in-stock: true}, {price: {lte: 12}, color: 'red'}]]} 
Product.search where: {brand: 'nike', in-stock: true, or: [ [{price: {lte: 12}}, {color: 'red'}] ]}
 Product.search where: {or: [[ {or: [[{brand: "nike"}, {in-stock: "true"}]]}], [{or: [[{price: 100}, {color: "red"}]]}]]}