版本: 6.8-7.15
简而言之,当 Elasticsearch 监视器(watch)中的 ID 字段包含空白字符时,会出现此错误,而这是不允许的。监视器是一个根据条件满足情况执行操作的功能。要解决此问题,您应确保 ID 字段不包含任何空白字符。您可以通过手动删除空白字符来实现,也可以在应用程序中实现验证检查以防止 ID 字段中出现空白字符。此外,确保操作字段格式正确并且可以被 Elasticsearch 解析。
日志上下文 #
日志 “could not parse action [{}] for watch [{}]. id contains whitespace” 的类名是 ActionRegistry.java。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入背景信息的人参考:
XContentParser.Token token;
while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) {
if (token == XContentParser.Token.FIELD_NAME) {
id = parser.currentName();
if (WatcherUtils.isValidId(id) == false) {
throw new ElasticsearchParseException("could not parse action [{}] for watch [{}]. id contains whitespace", id, watchId);
}
} else if (token == XContentParser.Token.START_OBJECT && id != null) {
actions.add(ActionWrapper.parse(watchId, id, parser, this, clock, licenseState));
}
}





