2016-04-08 2 views
0

ElasticsearchはElastesearch 2.3.0で新しいReindex APIをリリースしましたが、現在のNEST(2.1.1)バージョンではまだこのAPIを使用していますか?もしそうでなければ、そうする計画はありますか? 現在のバージョンには再インデックスメソッドがありますが、新しいインデックスを作成する必要があることを知っています。私の使用例では、インデックスはすでに存在しています。Nest - Reindexing

フィードバック/洞察力はすばらしいものになります。 Thnx!

答えて

1

プロジェクトのコミッターがTask Management APIUpdate By Queryなどの他の機能と一緒に、最良の答え:) Elasticsearch 2.3.0で利用可能

A commit went in on 6 April to map the new Reindex APIできるようになりますので、質問のこの種のは、最高のgithub issues for NESTに尋ねています。これはNEST 2.3.0

NEST 2.xのは、すでにスキャン/カバーの下にスクロールを使用して見てください進捗

public class Document {} 

var observable = client.Reindex<Document>("from-index", "to-index", r => r 
    // settings to use when creating to-index 
    .CreateIndex(c => c 
     .Settings(s => s 
      .NumberOfShards(5) 
      .NumberOfReplicas(2) 
     ) 
    ) 
    // query to optionally limit documents re-indexed from from-index to to-index 
    .Query(q => q.MatchAll()) 
    // the number of documents to reindex in each request. 
    // NOTE: The number of documents in each request will actually be 
    //  NUMBER * NUMBER OF SHARDS IN from-index 
    // since reindex uses scan/scroll 
    .Size(100) 
); 

var observer = new ReindexObserver<Document>(
    onNext: reindexResponse => 
    { 
     // do something with notification. Maybe log total progress 
    }, 
    onError: exception => 
    { 
     throw exception; 
    } 
    completed:() => 
    { 
     // Maybe log completion, refresh the index, etc.. 
    } 
); 

observable.Subscribe(observer); 

を観察するために使用することができるIObservable<IReindexResponse<T>>を返すインデックスの再作成を行うためのヘルパーが含まれているにその方法を作りましたいくつかのアイデアのためにReIndex API testsで。

新しいReindex APIは、既存の観察可能な実装と区別するためにクライアントにclient.ReIndexOnServer()という名前が付けられています。