プロジェクトのコミッターがTask Management APIとUpdate 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()
という名前が付けられています。