private IResponse SetAnalyzers(ElasticClient client)
        {
            // close index for settings update
            var closeResult = client.CloseIndex(IndexName);
            if (!closeResult.Acknowledged)
                return closeResult;

            var request = new UpdateSettingsRequest();
            request.Index = IndexName;
            request.Analysis = new AnalysisSettings();

            request.Analysis.Analyzers.Add("cnanalyzer", new SmartCnAnalyzer());
            request.Analysis.Analyzers.Add("jpanalyzer", new KuromojiAnalyzer());

            var updateResult = client.UpdateSettings(request);
            if (!updateResult.Acknowledged)
                return updateResult;

            // reopen index
            var openresult = client.OpenIndex(IndexName);
            if (!openresult.Acknowledged)
                return openresult;
            var newSettings = client.GetIndexSettings(s => s.Index(IndexName));
            return newSettings;
        }
        public void UpdateSettingsNumberOfReplicas()
        {
            var node = new Uri("http://localhost:9200");

            var conn = new ConnectionSettings(node);

            var client = new ElasticClient(conn);
            var crtSettings = client.GetIndexSettings(s => s.Index("test"));
            Assert.AreEqual(crtSettings.IndexSettings.NumberOfReplicas, 1);

            var request = new UpdateSettingsRequest();
            request.Index = "test";
            request.NumberOfReplicas = 2;
            var response = client.UpdateSettings(request);
            var newSettings = client.GetIndexSettings(s => s.Index("test"));
            Assert.AreEqual(newSettings.IndexSettings.NumberOfReplicas, 2);
        }
Exemple #3
-1
 protected static void GenerateAndIndex(ElasticClient client, string indexName, int numMessages, int bufferSize)
 {
     var msgGenerator = new MessageGenerator();
     var tasks = new List<Task>();
     var partitionedMessages = msgGenerator.Generate(numMessages).Partition(bufferSize);
     client.CreateIndex(indexName, c => c
         .NumberOfReplicas(0)
         .NumberOfShards(1)
         .Settings(s => s.Add("refresh_interval", "-1"))
         .AddMapping<Message>(p=>p.MapFromAttributes())
     );
     Interlocked.Exchange(ref NumSent, 0);
     foreach (var messages in partitionedMessages)
     {
         var t = client.IndexManyAsync(messages, indexName)
             .ContinueWith(tt =>
             {
                 Interlocked.Add(ref NumSent, bufferSize);
                 Console.WriteLine("Sent {0:0,0} messages to {1}, {2}", NumSent, indexName, tt.Result.Took);
             })
             ;
         tasks.Add(t);
     }
     Task.WaitAll(tasks.ToArray());
     client.UpdateSettings(u => u
         .Index(indexName)
         .RefreshInterval("1s")
     );
 }