Esempio n. 1
0
 public virtual IBulkResponse write(BulkOutputRequest request)
 {
     if (request.hasIdFieldName)
     {
         return(BulkUpsert(request));
     }
     return(BulkInsert(request));
 }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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;
            }
        }
Esempio n. 4
0
 public static bool hasData(this BulkOutputRequest request)
 {
     return(request != null && request.documents != null && request.documents.Count() > 0);
 }
Esempio n. 5
0
 private IBulkResponse BulkInsert(BulkOutputRequest request)
 {
     return(request.client.IndexMany(request.documents, request.index, request.type));
 }
Esempio n. 6
0
 public virtual void ResetIndex(BulkOutputRequest request)
 {
     request.client.DeleteIndex(request.index);
     request.client.CreateIndex(request.index, c => c.NumberOfReplicas(1).NumberOfShards(1));
 }