using Elastic.Clients.Elasticsearch.IndexManagement; using ElasticSearchStudy.Core; namespace ElasticSearchStudy.UnitTest { public class UseElasticSearchTest { private readonly ITestOutputHelper _output; private readonly ElasticsearchClient _client; public UseElasticSearchTest(ITestOutputHelper outputHelper) { _output = outputHelper; var elasticSetting = new ElasticsearchClientSettings(new Uri("https://127.0.0.1:9201")) .CertificateFingerprint("e57ce099af49fb34742cddffe1271c4ed709ef29649537fe89e6bee32728444d") .Authentication(new BasicAuthentication("elastic", "es-461400")) //.DefaultIndex("student") ; _client = new ElasticsearchClient(elasticSetting); } /// <summary> /// ÇëÇóES·þÎñÖ÷Ò³ /// </summary> [Fact] public void Ping_Test() { var pingResponse = _client.Ping(); if (pingResponse.IsSuccess()) { _output.WriteLine($"ÇëÇó³É¹¦,{pingResponse.DebugInformation}"); } else { _output.WriteLine("ÇëÇóʧ°Ü"); } Assert.True(pingResponse.IsSuccess()); } /// <summary> /// ¼¯Èº½¡¿µÐÅÏ¢ /// </summary> [Fact] public void Health_Test() { var response = _client.Cluster.Health(); Assert.True(response.IsSuccess()); //Êä³öÐÅÏ¢ _output.WriteLine($"¼¯ÈºÃû³Æ£º{response.ClusterName}"); _output.WriteLine($"¼¯Èº×´Ì¬£º{response.Status}"); _output.WriteLine($"½ÚµãÊýÁ¿£º{response.NumberOfNodes}"); _output.WriteLine($"Êý¾Ý½Úµã£º{response.NumberOfNodes}"); _output.WriteLine($"Ë÷ÒýÊýÁ¿£º{response.Indices?.Count ?? 0}"); if (response.Indices != null) { foreach (var node in response.Indices) { _output.WriteLine($"Key={node.Key},value={node.Value}"); } } _output.WriteLine($"ActiveShards£º{response.ActiveShards}"); _output.WriteLine($"ActivePrimaryShards£º{response.ActivePrimaryShards}"); _output.WriteLine($"ApiCallDetails£º{response.ApiCallDetails}"); _output.WriteLine($"´íÎóÐÅÏ¢£º{response.ElasticsearchServerError}"); _output.WriteLine($"¾¯¸æÐÅÏ¢£º{string.Join("", response.ElasticsearchWarnings)}"); } /// <summary> /// ½ÚµãÐÅÏ¢ /// </summary> [Fact] public void Node_Test() { var response = _client.Info(); Assert.True(response.IsSuccess()); //Êä³öÐÅÏ¢ _output.WriteLine($"½ÚµãÃû³Æ£º{response.Name}"); _output.WriteLine($"¼¯ÈºÃû³Æ£º{response.ClusterName}"); _output.WriteLine($"¼¯ÈºUUID£º{response.ClusterUuid}"); _output.WriteLine($"ES±êÓ{response.Tagline}"); _output.WriteLine($"°æ±¾ºÅ£º{response.Version.Number}"); _output.WriteLine($"¹¹½¨·ç¸ñ£º{response.Version.BuildFlavor}"); _output.WriteLine($"¹¹½¨ÀàÐÍ£º{response.Version.BuildType}"); _output.WriteLine($"¹¹½¨¹þÏ££º{response.Version.BuildHash}"); _output.WriteLine($"¹¹½¨ÈÕÆÚ£º{response.Version.BuildDate}"); _output.WriteLine($"Éú³É¿ìÕÕ£º{response.Version.BuildSnapshot}"); _output.WriteLine($"Lucene°æ±¾£º{response.Version.LuceneVersion}"); _output.WriteLine($"×îµÍ¼æÈÝÐÔ°æ±¾£º{response.Version.MinimumWireCompatibilityVersion}"); _output.WriteLine($"×îСË÷Òý¼æÈÝÐÔ°æ±¾ £º{response.Version.MinimumIndexCompatibilityVersion}"); _output.WriteLine($"´íÎóÐÅÏ¢£º{response.ElasticsearchServerError}"); _output.WriteLine($"¾¯¸æÐÅÏ¢£º{string.Join("", response.ElasticsearchWarnings)}"); } /// <summary> /// ÏòstudentË÷Òý£¬Ìí¼ÓÎĵµ /// </summary> [Fact] public void AddDocument_Test() { var stu = new Student() { Name = "Test", Age =55, School = "Ì«¿µ¶þ¸ß", Grade = "ÎåÒ»°à", Address ="Ì«¿µÏØÏØÎ¯¼ÒÊôÂ¥xxx" }; var request = new IndexRequest<Student>(document: stu,index: "student"); var response = _client.Index(request); Assert.True(response.IsSuccess()); } } }