一尘不染

从Nest客户端elasticsearch2.3序列化查询

elasticsearch

自将我的Nest客户端升级到2.2.1之后,我无法看到要提交给我的elasticsearch客户端(现在为2.3.0版)的查询。我曾经用这条线:

string searchJson = Encoding.UTF8.GetString(client.Serializer.Serialize(myQueryHere));

但是,此方法现在返回void而不是它以前使用的JSON。ConnectionStatus也不存在,所以我再也看不到我发送的json了,有人知道吗?CallDetails.RequestBodyInBytes可用,但返回null。


阅读 291

收藏
2020-06-22

共1个答案

一尘不染

在连接上查看NEST 2.x的文档。除非您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);

在开发过程中,注销所有请求和响应可能会很有用

2020-06-22