Elasticsearch Reindex或Flag Deleted Type属性

时间:2013-04-23 02:29:35

标签: json rest lucene elasticsearch

这与我原来的问题有关: 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调用的客户端应用程序同步,即您需要将所有文档发送到客户端,修改它们并将其发回。

如果存在可以移动和转换类型的服务器端操作,那将是理想的。这样的事情是存在的,还是我错过了“重新索引”的明显内容?

另一种方法是将数据标记为不再有效。在映射方面是否有任何内置标志,或者是否需要创建辅助类型来定义另一个类型属性是否有效?

1 个答案:

答案 0 :(得分:2)

您可以查看elasticsearch-reindex plugin。 更加手动的操作可能是使用扫描和放大器。滚动API以获取原始内容并使用批量API在新索引或类型中对其进行索引。

最后回答,您是如何在Elasticsearch中获取文档的?如果您已经在某处拥有数据源,只需使用与以前相同的过程。 如果您不想要任何停机时间,请在旧索引之上使用别名,一旦完成reindex,只需将别名移动到新索引。