我想搜索角色为“mapreduce-datanode”&的节点。 “MapReduce的名称节点”。
所以我试着跟随:
hadoop_nodes = search(:node, "role:mapreduce-datanode OR role:mapreduce-namenode AND chef_environment:#{node.chef_environment} AND domain:#{node['domain']}")
这是正确的方法吗?
感谢。
答案 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']}")