You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

128 lines
4.5 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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