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