📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

版本: 6.8-7.15

简而言之,当 Elasticsearch 在映射中遇到格式错误的动态名称表达式时,会发生此错误。具体来说,是缺少闭合的 }。这可能是由于 JSON 对象中的拼写错误或格式不正确导致的。要解决此问题,您应该检查您的映射,确保所有括号都正确配对并正确闭合。此外,请验证您的 JSON 对象,确保其格式良好。如果您正在使用动态模板,请确保字段名称模式和映射已正确定义。

日志上下文 #

日志 “invalid dynamic name expression [{}]. missing closing }” 的类名是 IndexNameExpressionResolver.java. 我们从 Elasticsearch 源代码中提取了以下内容,为那些寻求深入背景的人提供参考:

mathExpression = inPlaceHolderString;
 dateFormatter = DEFAULT_DATE_FORMATTER;
 timeZone = ZoneOffset.UTC;
 } else {
 if (inPlaceHolderString.lastIndexOf(RIGHT_BOUND) != inPlaceHolderString.length() - 1) {
 throw new ElasticsearchParseException("invalid dynamic name expression [{}]. missing closing `}`" +
 " for date math format"; inPlaceHolderString);
 }
 if (dateTimeFormatLeftBoundIndex == inPlaceHolderString.length() - 2) {
 throw new ElasticsearchParseException("invalid dynamic name expression [{}]. missing date format";
 inPlaceHolderString);