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); } /// /// 请求ES服务主页 /// [Fact] public void Ping_Test() { var pingResponse = _client.Ping(); if (pingResponse.IsSuccess()) { _output.WriteLine($"请求成功,{pingResponse.DebugInformation}"); } else { _output.WriteLine("请求失败"); } Assert.True(pingResponse.IsSuccess()); } /// /// 集群健康信息 /// [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)}"); } /// /// 节点信息 /// [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)}"); } /// /// 向student索引,添加文档 /// [Fact] public void AddDocument_Test() { var stu = new Student() { Name = "Test", Age =55, School = "太康二高", Grade = "五一班", Address ="太康县县委家属楼xxx" }; var request = new IndexRequest(document: stu,index: "student"); var response = _client.Index(request); Assert.True(response.IsSuccess()); } } }