这与我原来的问题有关: Elasticsearch Delete Mapping Property
从该帖子开始,假设您必须“重新索引”您的数据。这样做的安全策略是什么?
从原始帖子中总结一下,我试图从以下位置获取映射:
{
"propVal1": {
"type": "double",
"index": "analyzed"
},
"propVal2": {
"type": "string",
"analyzer": "keyword"
},
"propVal3": {
"type": "string",
"analyzer": "keyword"
}
}
到此:
{
"propVal1": {
"type": "double",
"index": "analyzed"
},
"propVal2": {
"type": "string",
"analyzer": "keyword"
}
}
删除已删除的媒体资源的所有数据。
我一直在考虑使用REST API。这似乎很危险,因为您需要将状态与发出REST调用的客户端应用程序同步,即您需要将所有文档发送到客户端,修改它们并将其发回。
如果存在可以移动和转换类型的服务器端操作,那将是理想的。这样的事情是存在的,还是我错过了“重新索引”的明显内容?
另一种方法是将数据标记为不再有效。在映射方面是否有任何内置标志,或者是否需要创建辅助类型来定义另一个类型属性是否有效?
答案 0 :(得分:2)
您可以查看elasticsearch-reindex plugin。 更加手动的操作可能是使用扫描和放大器。滚动API以获取原始内容并使用批量API在新索引或类型中对其进行索引。
最后回答,您是如何在Elasticsearch中获取文档的?如果您已经在某处拥有数据源,只需使用与以前相同的过程。 如果您不想要任何停机时间,请在旧索引之上使用别名,一旦完成reindex,只需将别名移动到新索引。