我在使用NEST客户端连接ElasticSearch集群时遇到问题。
在我的开发机器上,我可以连接并运行查询弹性(在我的本地机器上运行)就好了,但在我们的暂存环境中,我收到错误" System.Net.WebException:底层连接已关闭:连接意外关闭。"。
我们的暂存环境包括4台运行Elastic的Linux机器和运行我们客户端软件的Windows机器。
我已经在连接设置上设置了DisableDirectStreaming()。我也尝试在我的web.config中设置<httpWebRequest useUnsafeHeaderParsing="true" />
,但错误仍然存在(但现在ApiCall.OriginalException为NULL)。
通过Kopf接口发送查询,返回结果,因此集群似乎正在运行。
任何人都知道这里出了什么问题?
更新 我正在运行的查询是(其中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)
);
答案 0 :(得分:1)
我解决了这个问题。不知怎的,客户端正在与9300端口进行通信而不是端口9200.我修复了这个问题,现在从ES中获取结果。