1

这是我们过去用来 ping Elastic Search 节点的代码片段,只是为了检查它是否存在:

Nest.ElasticClient client; // has been initialized
ConnectionStatus connStatus;
client.TryConnect(out connStatus);  
var isHealthy = connStatus.Success;

看起来在NEST 0.11.5ElasticClient.TryConnect中已被删除。它是完全消失了还是只是像 MapRaw/CreateIndexRaw 一样被移到了其他地方?

如果它被删除,这就是我打算做的事情:

Nest.ElasticClient client; // has been initialized
var connectionStatus = client.Connection.GetSync("/");
var isHealthy = connectionStatus.Success;

看起来这行得通 - 还是有更好的替代方法TryConnect

4

1 回答 1

5

是的,他们有。查看发行说明: https ://github.com/Mpdreamz/NEST/releases/tag/0.11.5.0

摘自发行说明:

删除IsValidTryConnect()

我在近三年前编写的 ElasticClient 的前 2 个功能在当时似乎是个好主意。TryConnect()并且.IsValid()有两种令人困惑的方法来检查您的节点是否已启动,RootNodeInfo()现在返回当您点击根节点(版本,lucene_version 等)时,elasticsearch 返回的信息的映射响应,或者您可以调用client.Raw.MainGet()或者甚至更好client.Raw.MainHead()甚至client.Connection.HeadSync("/").

你明白了我的意思:有这么多查询根的方法,.IsValid只是TryConnect()绒​​毛,只会引入混乱。

于 2013-10-15T11:05:14.867 回答