Ruby on rails 如何使用或搜索角色
我想搜索角色为“mapreduce datanode”和“mapreduce namenode”的节点 所以我试着如下:Ruby on rails 如何使用或搜索角色,ruby-on-rails,ruby,chef-recipe,chef-infra,Ruby On Rails,Ruby,Chef Recipe,Chef Infra,我想搜索角色为“mapreduce datanode”和“mapreduce namenode”的节点 所以我试着如下: hadoop_nodes = search(:node, "role:mapreduce-datanode OR role:mapreduce-namenode AND chef_environment:#{node.chef_environment} AND domain:#{node['domain']}") 这是正确的方法吗 谢谢。如果您想要“mapreduce da
hadoop_nodes = search(:node, "role:mapreduce-datanode OR role:mapreduce-namenode AND chef_environment:#{node.chef_environment} AND domain:#{node['domain']}")
这是正确的方法吗
谢谢。如果您想要“mapreduce datanode”和“mapreduce namenode”
,那么为什么要使用OR
如果您真的需要AND,那么您需要:
hadoop_nodes = search(:node, "role:mapreduce-datanode AND role:mapreduce-namenode AND chef_environment:#{node.chef_environment} AND domain:#{node['domain']}")
如果你想要两个集合的并集(即你真正的意思是或),那么试试这个:
hadoop_nodes = search(:node, "(role:mapreduce-datanode OR role:mapreduce-namenode) AND chef_environment:#{node.chef_environment} AND domain:#{node['domain']}")
您应该使用()对OR进行分组,因为它的优先级通常较低,在这里您可以匹配角色:mapreduce datanode
或其他条件。我将使用(角色:mapreduce datanode或角色:mapreduce namenode)和…
(警告:未测试)