elasticsearch Logstash可根据字段选择设置elasticsearch的输出选项,elasticsearch,logstash,elastic-stack,logstash-configuration,elasticsearch,Logstash,Elastic Stack,Logstash Configuration" /> elasticsearch Logstash可根据字段选择设置elasticsearch的输出选项,elasticsearch,logstash,elastic-stack,logstash-configuration,elasticsearch,Logstash,Elastic Stack,Logstash Configuration" />

elasticsearch Logstash可根据字段选择设置elasticsearch的输出选项

elasticsearch Logstash可根据字段选择设置elasticsearch的输出选项,elasticsearch,logstash,elastic-stack,logstash-configuration,elasticsearch,Logstash,Elastic Stack,Logstash Configuration,假设我有一些带有join字段的文档,因此它们可能有parent(例如,[join_field][parent])字段,因此根据文档,我需要将其传递给logstash elasticsearch输出中的_routing ... output { elasticsearch { ... routing => "%{[join_field][parent]}" } } 现在,如果文档中没有join_字段,上面将在ES中将其路由设置为字面上的%{[join_字段][par

假设我有一些带有join字段的文档,因此它们可能有parent(例如,[join_field][parent])字段,因此根据文档,我需要将其传递给logstash elasticsearch输出中的_routing

...
output {
  elasticsearch {
    ...
    routing => "%{[join_field][parent]}"
  }
}
现在,如果文档中没有join_字段,上面将在ES中将其路由设置为字面上的
%{[join_字段][parent]}

我是否可以将其设置为可选,以便仅当[join_field][parent]存在时,ES输出才会设置路由

或者这里唯一的方法是在字段上设置if-else条件,并为每个字段分别设置输出(但为许多选项设置多个if感觉很奇怪)?这也会有任何性能问题吗

...
output {
  if [join_field][parent] {
    elasticsearch {
      ...
      routing => "%{[join_field][parent]}"
    }
  } else { 
    elasticsearch {
      ...
    }
  }
}

只有在[join_field]{parent]的情况下才评估
,你担心的性能会受到影响吗?如果它是真的,它会以任何方式进行你想要的路由,如果它是假的,它会进入
else
块。所以我认为这不会有什么大不了的。我也不知道任何其他方式。@JBone是的,你在这方面是正确的“无论如何,它都需要计算
[join\u field]{parent]
"。我们正在接收大量文档,因此我对如何将其放入配置中产生了疑心:)我完全理解。因此,如果您使用此解决方案,请尝试使该验证少于文档数量的一半。我的意思是,在first
if
中使用最常见的场景来阻止并处理
else中的文档较少。因此,在您的情况下,如果您认为大多数文档都会有
路由
信息,请保持
如果
不变,否则会颠倒逻辑。@JBone,有意义,谢谢您的帮助!