2017-07-18 7 views
0

私はElasticsearchバージョン1.7.5を使用しています。バージョン2.x(または5.x)にアップグレードする前に、5つの大きなインデックスを再インデックスして、2.x標準に準拠させる必要があります。弾性検索 - LogstashまたはスクロールAPIを使用せずにデータを再インデックスする最善の方法は何ですか?

残念ながら、Logstash(およびスクロールAPI)はthis problemのためにデータを再インデックスできません。


私の質問:

  • LogstashやスクロールのAPIを使用せずに私のデータのインデックスを再作成するための最良の方法は何ですか?
    • 可能であれば、Nestを使用することをお勧めします。
+0

を使用して、応答のTaskプロパティを使用して操作の状態を確認できます。この回答は役に立ちます:https://stackoverflow.com/questions/34921637/how-to-copy- 1つのインデックスドキュメントと他のインデックスの間の弾性検索/ 34922623#34922623 – Val

+0

@Val:ありがとう。残念なことに、これらのソリューションはすべて、スクロールAPIを使用しています。 –

+0

[この文書](https://www.elastic.co/guide/en/elasticsearch/reference/5.x/reindex-upgrade.html)は役に立ちますか? – Adonis

答えて

1

あなたがElasticsearch 5.0以上をターゲットにしている場合は、Elasticsearch 5.0以上にリモートElasticsearchクラスタ(1.7.5クラスタ)からのデータのインデックスを再作成するためにreindex APIを使用することができます。 ReindexOnServer()方法

client.ReindexOnServer(r => r 
    .Source(s => s 
     .Remote(sr => sr 
      // URI to 1.7.5 cluster 
      .Host(new Uri("http://localhost:9201")) 
     ) 
     .Index("entries") 
    ) 
    .Destination(d => d 
     .Index("entries") 
    ) 
    .WaitForCompletion(true) 
); 

WaitForCompletionは、通話が終了するインデックスを再作成を待つべきかどうかを決定するよう

NEST 5.xでは、REINDEXのAPIを公開しています。これが偽の場合、tasks API

関連する問題