我在使用 NEST 客户端通过 ElasticSearch 集群连接时遇到问题。
在我的开发机器上,我可以很好地连接和运行对弹性(在我的本地机器上运行)的查询,但在我们的暂存环境中,我收到错误“System.Net.WebException:底层连接已关闭:连接意外关闭。 ”。
我们的暂存环境由 4 台运行 Elastic 的 Linux 机器和一台运行我们的客户端软件的 Windows 机器组成。
我已经在 connectionsettings 上设置了 DisableDirectStreaming()。我也试过设置<httpWebRequest useUnsafeHeaderParsing="true" />
在我的 web.config 中,但错误仍然存在(但现在 ApiCall.OriginalException 为 NULL)。
通过 Kopf 接口(interface)发送查询,返回结果,因此集群似乎可以运行。
有人知道这里出了什么问题吗?
更新:
我正在运行的查询是(其中 indexFilter 和 searchFilter 根据用户请求填充):
此查询在我的本地 ES (Windows/ES 2.1.1) 上有效,但在我的生产 ES (Ubuntu/ES 2.1.1) 上无效
QueryContainer indexFilter = new QueryContainer();
QueryContainer searchFilter = new QueryContainer();
var result = db.Client.Search<IndexRecord>
(
search => search
.Query
(
f => f.HasChild<SearchRecord>
(
c => c
.Query
(
f2 => searchFilter
)
) & indexFilter
)
.Sort
(
ss => ss.Ascending(f => f.AccommodationName)
)
.Size(10)
);
最佳答案
我解决了这个问题。不知何故,客户端正在与端口 9300 而不是端口 9200 交谈。我修复了这个问题,现在从 ES 中获取结果。
关于elasticsearch - NEST Elasticsearch 错误 : The underlying connection was closed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35652901/