如何在弹性搜索中删除字段映射

时间:2015-03-05 05:42:56

标签: elasticsearch mapping

我有一个带有以下映射的索引

{
   "testmap": {
      "mappings": {
         "user": {
            "properties": {
               "plans": {
                  "type": "nested",
                  "properties": {
                     "user": {
                        "type": "long"
                     }
                  }
               },
               "status": {
                  "type": "integer"
               }
            }
         }
      }
   }
}

我想删除状态字段映射。我不介意放弃该领域的数据。是否有删除状态字段的选项。 尝试

curl -XDELETE http://192.168.2.2:9200/testmap/user/status
{"found":false,"_index":"testmap","_type":"user","_id":"status","_version":1

非常感谢您的帮助。谢谢。

2 个答案:

答案 0 :(得分:7)

您无法从此映射中删除status字段。如果您确实需要删除此字段,则必须创建另一个没有status字段的映射并重新索引数据。看看这个answer

答案 1 :(得分:3)

如果您只需要在状态字段中更改映射类型,则无法将其删除,但您可以将其更改为multi_field类型,该类型使用多个选项集对该字段编制索引。

旧数据不会被索引到新字段,但是向前移动的索引请求将会。在某些用例中,它是"删除索引并使用新映射创建新索引的正确选择"。

https://www.elasticsearch.org/guide/en/elasticsearch/reference/0.90/mapping-multi-field-type.html