NESTを使用してESのドキュメントを置き換えようとしています。私は次のオプションが利用可能であることを見ている。NESTを使用したElasticSearchの一括アップデート
オプション#1:
var documents = new List<dynamic>();
`var blkOperations = documents.Select(doc => new BulkIndexOperation<T>`(doc)).Cast<IBulkOperation>().ToList();
var blkRequest = new BulkRequest()
{
Refresh = true,
Index = indexName,
Type = typeName,
Consistency = Consistency.One,
Operations = blkOperations
};
var response1 = _client.Raw.BulkAsync<T>(blkRequest);
オプション#2:
var descriptor = new BulkDescriptor();
foreach (var eachDoc in document)
{
var doc = eachDoc;
descriptor.Index<T>(i => i
.Index(indexName)
.Type(typeName)
.Document(doc));
}
var response = await _client.Raw.BulkAsync<T>(descriptor);
だから誰もがどちらが優れているか、一括更新を行うには、他のオプションまたはNESTを使用して削除私に言うことができますか?
Russ Camに感謝します。私はBulkDescriptorを使用したことは意味があります。一括更新のいずれかが失敗した場合にロールバックする方法はありますか? – Sasi
1回のバルクリクエストですべての更新をロールバックするという意味ですか?要するに、バルクリクエスト内のそれぞれのアップデートが他と独立している、つまりトランザクションではないからです。必要に応じて失敗した操作を再試行できますが、ロールバックする方法は組み込まれていません。 –
OK。あなたの返事にもう一度感謝します。 – Sasi