elasticsearch,Json,Rest,Lucene,elasticsearch" /> elasticsearch,Json,Rest,Lucene,elasticsearch" />

Json Elasticsearch删除映射属性

Json Elasticsearch删除映射属性,json,rest,lucene,elasticsearch,Json,Rest,Lucene,elasticsearch,我试图找到一种方法来删除elasticsearch索引中特定属性的所有条目,并删除该属性的所有类型映射 我一直在看以下两个文档页面:和 从第二个链接: “允许删除映射(类型)及其数据。其余 端点为/{index}/{type},使用DELETE方法。“ 我想我需要的是一个/{index}/{type}/{property} 我是否需要重新创建整个索引来完成此任务,即在类型之间移动和操作数据 例如,在映射上调用GET: curl -XGET 'http://.../some_index/some_

我试图找到一种方法来删除elasticsearch索引中特定属性的所有条目,并删除该属性的所有类型映射

我一直在看以下两个文档页面:和

从第二个链接:

“允许删除映射(类型)及其数据。其余 端点为/{index}/{type},使用DELETE方法。“

我想我需要的是一个
/{index}/{type}/{property}

我是否需要重新创建整个索引来完成此任务,即在类型之间移动和操作数据

例如,在映射上调用GET:

curl -XGET 'http://.../some_index/some_type/_mapping'
curl -XGET 'http://.../some_index/some_type/_mapping'
结果:

{
  "some_type": {
    "properties": {
      "propVal1": {
        "type": "double",
        "index": "analyzed"
      },
      "propVal2": {
        "type": "string",
        "analyzer": "keyword"
      },
      "propVal3": {
        "type": "string",
        "analyzer": "keyword"
      }
    }
  }
}
{
  "some_type": {
    "properties": {
      "propVal1": {
        "type": "double",
        "index": "analyzed"
      },
      "propVal2": {
        "type": "string",
        "analyzer": "keyword"
      }
    }
  }
}
在对
propVal3
执行此删除操作后,将返回:

结果:

{
  "some_type": {
    "properties": {
      "propVal1": {
        "type": "double",
        "index": "analyzed"
      },
      "propVal2": {
        "type": "string",
        "analyzer": "keyword"
      },
      "propVal3": {
        "type": "string",
        "analyzer": "keyword"
      }
    }
  }
}
{
  "some_type": {
    "properties": {
      "propVal1": {
        "type": "double",
        "index": "analyzed"
      },
      "propVal2": {
        "type": "string",
        "analyzer": "keyword"
      }
    }
  }
}

propVal3的所有数据都将通过索引删除。

目前无法从映射中删除属性。为了从所有记录中删除属性的所有值,您需要在删除此属性的情况下重新索引所有记录。

您不能这样做。忘记这个值存在…;-)
如果确实需要删除它,则必须重新为文档编制索引。

您可以使用新的
\u reindex
api进行此操作,甚至可以在运行reindex之前将新的
\u映射到dest索引,以便更改索引中字段的属性

要重新编制索引并删除属性,可以执行以下操作:

POST /_reindex
{
  "source": {
    "index": "twitter"
  },
  "dest": {
    "index": "new_twitter",
  },
  "script": {
    "inline": "ctx._source.remove('whatever')"
  }
}

如果您将它与一起使用,您可以修改索引而无需任何“停机”

感谢您的响应。我觉得我需要这样做。通过“重新索引”实现这一点的最佳策略是什么?我意识到这将是一场表演噩梦。。。但是你会采取什么策略呢?移动到另一种类型(删除过程中的属性)并再次返回是一种选择吗?创建了此问题的后续问题:为什么文档中说这是可能的?或者我误解了?你能提供我们所说的文档的链接吗?@TheRedPea使用例如,或者elasticsearch可用的许多reindex脚本之一。