Elasticsearch索引复制到新服务器

时间:2014-05-26 14:44:33

标签: elasticsearch replication

我是Elasticsearch的新手,我有一个架构问题。我有一个存储文件的系统。其中一些文件是PUBLIC,其中一些是私人文件。

在主系统中输入,索引和搜索文档。到目前为止,这很容易实现。

虽然这是一个额外的要求。

  • 我需要创建一个从属系统,它是主要主要ES实例的复制,尽管它不能包含任何私有文档,即使在索引级别也是如此。因此,我不能确保使用过滤器搜索正确的文档,但索引不能包含标记为私有的文档

我想知道我是否可以执行以下操作 - >

1,克隆主ES实例 2,删除所有私密文件 3,重新索引整个索引 4,创建干净ES的快照 5,将此快照还原到Slave Public实例。

这对我来说听起来很复杂。是否有更好/更简单的方法来做到这一点?

提前感谢任何指针,

1 个答案:

答案 0 :(得分:2)

我建议将此方法作为替代方案。在主Elasticsearch集群上创建两个索引,Public和Private。还要创建一个覆盖两者的索引别名http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-aliases.html,以便您可以方便地同时查询两个索引。

然后,您可以使用Elasticsearch快照并还原http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-snapshots.html来仅拍摄公共索引的快照,并将其还原到另一个群集。

这样你就有另一个ES集群,其中只有Public索引。

另一种方法是将每个索引(公共和私有)保留在它自己的集群中。如果要跨公共和私有运行查询,请使用部落节点。部落节点将连接到两个集群并在它们之间运行查询:http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-tribe.html