ElasticClient.TryConnect已从NEST中删除了吗?

时间:2013-10-14 18:37:35

标签: elasticsearch nest

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

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

NEST 0.11.5中已删除ElasticClient.TryConnect。是完全消失还是刚刚移到其他地方just like MapRaw/CreateIndexRaw

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

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

看起来这样有效 - 或者有更好的方法来替换TryConnect吗?

1 个答案:

答案 0 :(得分:5)

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

摘自发行说明:

已移除IsValidTryConnect()

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

你抓住了我的漂移:有很多方法可以查询根.IsValidTryConnect(),这只会引起混乱。