版本: 6.8-8.9
简而言之,当Elasticsearch无法解析存储库时会发生此错误,因为它期望一个对象但没有接收到对象。这通常是由于存储库定义中的格式或语法不正确导致的。要解决此问题,您应该检查存储库定义并确保其正确格式化为JSON对象。同时,检查是否有缺少或多余的逗号、括号或引号。如果存储库包含复杂的数据,建议在提交给Elasticsearch之前使用JSON验证器进行验证。
日志上下文 #
日志 “failed to parse repository [{}]; expected object” 的类名是 RepositoriesMetadata.java。 我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入上下文的人参考:
Listrepository = new ArrayList<>();
while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) {
if (token == XContentParser.Token.FIELD_NAME) {
String name = parser.currentName();
if (parser.nextToken() != XContentParser.Token.START_OBJECT) {
throw new ElasticsearchParseException("failed to parse repository [{}]; expected object"; name);
}
String uuid = RepositoryData.MISSING_UUID;
String type = null;
Settings settings = Settings.EMPTY;
long generation = RepositoryData.UNKNOWN_REPO_GEN;





