【发布时间】:2020-04-29 18:39:28
【问题描述】:
我有一个脚本字段“transferspeed”,计算为"doc['bytes'].value / doc['duration'].value"。该字段正在运行,但我收到警告“Courier Fetch: 6 of 12 shards failed.”。
我认为这是因为并非所有文档都存在“字节”。我该如何解决这个问题,是否可以调整脚本或者我必须在没有字节字段的文档中添加一个 0 的“字节”字段?
谢谢
【问题讨论】:
我有一个脚本字段“transferspeed”,计算为"doc['bytes'].value / doc['duration'].value"。该字段正在运行,但我收到警告“Courier Fetch: 6 of 12 shards failed.”。
我认为这是因为并非所有文档都存在“字节”。我该如何解决这个问题,是否可以调整脚本或者我必须在没有字节字段的文档中添加一个 0 的“字节”字段?
谢谢
【问题讨论】:
如果您可以在没有bytes 或
duration 值(这可能是有道理的,因为没有
他们),您可以使用
exists
过滤以将结果限制为具有bytes 和duration 的文档
字段。
【讨论】:
好吧,在取值之前,您需要检查这些字段是否存在。 类似的东西 -
If(doc.contains('bytes') && doc.contains('duration')){
// Do computation
}
这应该可以解决问题。
【讨论】:
试试这个
if(doc['bytes'].value!=null && doc['duration'].value!=null) {
return doc['bytes'].value / doc['duration'].value
}
【讨论】: