版本: 6.8-7.15
简而言之,当 Elasticsearch 尝试读取自定义元数据字段时期望一个 long 整数类型,但实际值不是有效的 long 类型时,会触发此错误。这可能是由于数据类型或格式不正确导致的。要解决此问题,你可以:1)检查数据输入,确保它是有效的 long 整数。2)修改索引的映射以正确定义字段的数据类型。3)使用脚本或 ingest pipeline 在索引之前将数据转换为正确的格式。
日志上下文 #
日志"Custom metadata field [{}] does not contain a valid long. Actual value: [{}]“的类名是 LifecycleExecutionState.java。 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入了解上下文的人参考:
}
if (customData.containsKey(INDEX_CREATION_DATE)) {
try {
builder.setIndexCreationDate(Long.parseLong(customData.get(INDEX_CREATION_DATE)));
} catch (NumberFormatException e) {
throw new ElasticsearchException("Custom metadata field [{}] does not contain a valid long. Actual value: [{}]",
e, INDEX_CREATION_DATE, customData.get(INDEX_CREATION_DATE));
}
}
if (customData.containsKey(PHASE_TIME)) {
try {





