如何使用OR搜索角色

时间:2014-09-04 15:07:21

标签: ruby-on-rails ruby chef-recipe chef

我想搜索角色为“mapreduce-datanode”&的节点。 “MapReduce的名称节点”。

所以我试着跟随:

hadoop_nodes = search(:node, "role:mapreduce-datanode OR role:mapreduce-namenode AND chef_environment:#{node.chef_environment} AND domain:#{node['domain']}")

这是正确的方法吗?

感谢。

1 个答案:

答案 0 :(得分:1)

如果你想要"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']}")

如果你想要两个联合(即你真的意味着OR),那么试试这个:

hadoop_nodes = search(:node, "(role:mapreduce-datanode OR role:mapreduce-namenode) AND chef_environment:#{node.chef_environment} AND domain:#{node['domain']}")