自将我的Nest客户端升级到2.2.1之后,我无法看到要提交给我的elasticsearch客户端(现在为2.3.0版)的查询。我曾经用这条线:
string searchJson = Encoding.UTF8.GetString(client.Serializer.Serialize(myQueryHere));
但是,此方法现在返回void而不是它以前使用的JSON。ConnectionStatus也不存在,所以我再也看不到我发送的json了,有人知道吗?CallDetails.RequestBodyInBytes可用,但返回null。
在连接上查看NEST 2.x的文档。除非您CallDetails.RequestBodyInBytes将其null设置.DisableDirectStreaming()为ConnectionSettings,否则将被传递给ElasticClient
CallDetails.RequestBodyInBytes
null
.DisableDirectStreaming()
ConnectionSettings
ElasticClient
var connectionPool = new SingleNodeConnectionPool(new Uri("http://localhost:9200")); var settings = new ConnectionSettings(connectionPool) .DisableDirectStreaming(); var client = new ElasticClient(settings);
现在,请求和响应字节的副本将在响应CallDetails上公开
var response = client.Search<Document>(); var requestJson = Encoding.UTF8.GetString(response.CallDetails.RequestBodyInBytes); var responseJson = Encoding.UTF8.GetString(response.CallDetails.ResponseBodyInBytes);
在开发过程中,注销所有请求和响应可能会很有用。