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;
        }
예제 #2
0
        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);
        }