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

版本: 7-7.17

简而言之,当 Elasticsearch 中的动态映射(dynamic mapping)设置设置为 false 时,会出现此错误。该设置控制是否可以自动向索引添加新字段。如果设置为 false,Elasticsearch 将拒绝包含索引中尚不存在的字段的文档。要解决此问题,您可以将该设置更改为 true 以允许动态映射,或者在索引文档之前手动将新字段添加到索引映射中。

日志上下文 #

日志 “[” + MapperService.INDEX_MAPPER_DYNAMIC_SETTING.getKey() + “] is [false]” 的类名是 AutoCreateIndex.java。 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考:

final AutoCreate autoCreate = this.autoCreate;
    if (autoCreate.autoCreateIndex == false) {
    throw new IndexNotFoundException("[" + AUTO_CREATE_INDEX_SETTING.getKey() + "] is [false]"; index);
    }
    if (dynamicMappingDisabled) {
    throw new IndexNotFoundException("[" + MapperService.INDEX_MAPPER_DYNAMIC_SETTING.getKey() + "] is [false]"; index);
    }
    // matches not set; default value of "true"
    if (autoCreate.expressions.isEmpty()) {
    return true;
    }