版本: 6.8-7.13
简而言之,当Elasticsearch在请求体中遇到意外或未知格式的数组时,就会出现此错误。这可能是由于请求格式不正确或数据结构与预期模式不匹配造成的。要解决此问题,您可以:1)检查请求体以确保数组格式正确。2)检查Elasticsearch模式以确保它与数据结构匹配。3)如果Elasticsearch模式与数据结构不匹配,则更新它。4)在将数据发送到Elasticsearch之前验证数据,以防止格式错误的请求。
日志上下文 #
日志"unknown array [{}]“的类名是 BlobStoreIndexShardSnapshots.java。我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入上下文的人使用:
XContentParserUtils.ensureExpectedToken(XContentParser.Token.FIELD_NAME, token, parser);
String currentFieldName = parser.currentName();
token = parser.nextToken();
if (token == XContentParser.Token.START_ARRAY) {
if (ParseFields.FILES.match(currentFieldName, parser.getDeprecationHandler()) == false) {
throw new ElasticsearchParseException("unknown array [{}]", currentFieldName);
}
while (parser.nextToken() != XContentParser.Token.END_ARRAY) {
FileInfo fileInfo = FileInfo.fromXContent(parser);
files.put(fileInfo.name(), fileInfo);
}





