2017-03-07 3 views
0

自分自身のローカルインデックスにデータを保持しようとしています。私はそうするためにどのelasticsearch設定を適用する必要があるのだろうかと思っています。具体的には、インデックス内のデータを他のノードに複製しないようにしたいと思います。Elasticsearch:自身のインデックス内のスコープデータ

質問を言い換える:(すべてのノードの)自分自身のローカルインデックスにデータを保持する方法はありますか?

ノード1 - > foobar_index ---> { "データ": "ASDF"}

ノード2 - > foobar_index ---> { "データ": "QWERTY"}

ノード3 - - > {"data": "zxcv"}

+0

したがって、あるノードに格納されたドキュメントを別のノードに複製しないようにしたいですか?そうであれば、それは可能ですが、1つのノードがダウンするとデータが失われます。 – Val

+0

はい - それはまさに正しいです。私たちは、自分自身にしか適切でない情報を持ついくつかのノードを持っています。さらに、低速のネットワークリンクを介して接続されているノード間で複製を防止できるようにしたいと考えています。どのような設定---私は一日中それを把握しようとしてきたことを教えてください。 – user2926999

答えて

1

インデックスを複製しない、つまり1つのノードにのみシャードが存在するようにするには、レプリカの数を0に設定します。ただし、ノードの1つがダウンしたり破損したりすると、データが失われる可能性があります。

curl -XPUT 'localhost:9200/foobar_index/_settings' -d ' 
{ 
    "index" : { 
     "number_of_replicas" : 0 
    } 
}' 
+0

動作しません---設定を変更してデータを追加し、両方のノードで同じデータが表示されました。 – user2926999

+0

「curl -XGET localhost:9200/_cat/shards'」というレスポンスで質問を更新できますか? – Val

+0

ああ!私はあなたが何を意味するかを見ていると思います。これは私がやったことです:インデックスを作成し、その設定を適用しました。 node1のインデックスにデータを作成し、node1にes.search()を実行してデータが存在することを確認しました。私もnode2でes.search()を実行し、データが存在することを確認しました...しかし、データはそのノードに存在しません_私は起こっていると思います。あれは正しいですか? – user2926999

関連する問題