无法更新/重新创建ES索引:mapper_parsing_exception(ES7)

时间:2019-08-06 02:26:38

标签: elasticsearch

我使用以下映射创建了一个名为“ t_documents”的索引:

{
   "settings": {
        "index": {
             "mapping.total_fields.limit": "2000",
              "number_of_shards": 5,
              "number_of_replicas": 1,
        }
   },
   "mappings": {
          "properties": {
                "id": { "type": "keyword"},
                "title": { "type": "keyword"},
                "content": { "type": "keyword"},
                "file_location": { "type": "keyword"} 
          }
  }
}

我删除了索引,并使用以下映射重新创建: (仅显示“映射”部分)

 "mappings": {
          "properties": {
                "id": { "type": "keyword"},
                "title": { "type": "keyword"},
                "content": { "type": "keyword"},
                "file_location": { "type": "keyword"} ,
                "timestamp": { "type": "keyword"} 
          }
  }

我遇到以下错误消息:

root_cause: [{
   type: mapper_parsing_exception
    reason: Root mapping definition has unsupported parameters: [file_location: {type=keyword}] [content: {type=keyword}] [title: {type=keyword}] [id: {type=keyword}]
}]

当我尝试将其放入全新索引中时也会发生这种情况。

我在ElasticSearch网站上也找不到任何有用的信息。

我正在使用ES7

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。

为索引创建空白映射

PUT /t_documents
{}

然后,对索引中的每个字段执行此操作

PUT /t_documents/_mapping/{field name}
{ "properties": {
     "{field name}": {
            "type": ...
     }
  }
}