public virtual IBulkResponse write(BulkOutputRequest request) { if (request.hasIdFieldName) { return(BulkUpsert(request)); } return(BulkInsert(request)); }
private IBulkResponse BulkUpsert(BulkOutputRequest request) { var descriptor = new BulkDescriptor(); foreach (var doc in request.documents) { descriptor.Index <object>(op => op.Index(request.index) .Type(request.type) .Object(doc) .Id(((IDictionary <string, object>)doc)[request.idFieldName].ToString())); } return(request.client.Bulk(descriptor)); }
static void doWork(Command command) { var query = ReadRequest.create(command); var output = BulkOutputRequest.create(command); output.documents = InputReader.read(query).Result; var writer = new OutputWriter(); if (command.isRecreateIndex) { writer.ResetIndex(output); } while (output.hasData()) { writer.write(output); query.page++; output.documents = InputReader.read(query).Result; } }
public static bool hasData(this BulkOutputRequest request) { return(request != null && request.documents != null && request.documents.Count() > 0); }
private IBulkResponse BulkInsert(BulkOutputRequest request) { return(request.client.IndexMany(request.documents, request.index, request.type)); }
public virtual void ResetIndex(BulkOutputRequest request) { request.client.DeleteIndex(request.index); request.client.CreateIndex(request.index, c => c.NumberOfReplicas(1).NumberOfShards(1)); }