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); }
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") ); }