我在Elasticsearch 1.7.x中与不同的节点共享不同的索引。但是,我想知道是否可以不共享其中一些索引并仅将它们保留在某些节点中。
谢谢
是的,你可以,基本上索引是其分片的组合。
分片是单个 Lucene 实例。它是一个由 elasticsearch 自动管理的低级"worker"单元。索引是指向主分片和副本分片的逻辑命名空间。除了定义索引应具有的主分片和副本分片的数量外,您永远不需要直接引用分片。相反,您的代码应仅处理索引。Elasticsearch 在集群中的所有节点之间分配分片,并且可以在节点发生故障或添加新节点的情况下自动将分片从一个节点移动到另一个节点。
您可以按索引设置分片分配
PUT test/_settings
{
"index.routing.allocation.include._ip": "192.168.2.*"
}
是的,你可以,这是另一个问题,所以我添加这个作为解决方案,
您可以使用集群重新路由功能,我认为该示例是不言自明的。
文档中的示例:
curl -XPOST 'localhost:9200/_cluster/reroute' -d '{
"commands" : [ {
"move" :
{
"index" : "test", "shard" : 0,
"from_node" : "node1", "to_node" : "node2"
}
},
{
"allocate" : {
"index" : "test", "shard" : 1, "node" : "node3"
}
}
]
}'