私はあちこちを見回してきましたが、この質問に対する適切な答えを見つけることができませんでした。このコードを使用して NEST クライアントを作成しました。
var myIndex = "myTestIndex";
var myType = "myTestType";
var myClusterUri= "http://localhost:9200";
var uri = new Uri(myClusterUri);
var settings = new ConnectionSettings(uri);
var client = new ElasticClient(settings);
その後、これを使用して一括 API を呼び出します。
var myJson = PopulateJsonForBulkAPI();
var rawBulkResult = client.Raw.Bulk(myIndex, myType, myJson);
私が抱えている問題は、一括 API 呼び出しを行うときに OutOfMemoryException が発生することです。myJson に入力するメソッドは、JSON の巨大なブロックを作成しますが、例外をスローするのに十分な大きさではありません (ただし、重複している場合は例外をスローするのに十分な大きさです)。次に、一括 API を呼び出すと、NEST が元の要求を保持するため、OutOfMemoryException がスローされます (本質的に、JSON を複製し、すべてを保持するのに十分なメモリがありません)。Bulk API を呼び出す方法はありますが、JSON の巨大なブロックがメモリ内で複製されないように、元の要求を保持しないように NEST に指示する方法はありますか?
編集
NEST バージョン 1.7.2 と ElasticSearch バージョン 1.7.2 を使用しています