从 Nest 客户端弹性搜索 2.3 序列化查询
serialize query from Nest client elastic search 2.3
自从将我的 Nest 客户端升级到 2.2.1 后,我无法看到我提交给我的弹性搜索客户端(现在是 2.3.0 版)的查询。
我曾经使用这一行:
string searchJson = Encoding.UTF8.GetString(client.Serializer.Serialize(myQueryHere));
但是这个方法现在 returns 无效,而不是以前的 JSON。
ConnectionStatus 也不存在,所以我无法再看到我正在发送的 json,有人知道办法吗? CallDetails.RequestBodyInBytes 可用,但 returns 无效。
Take a look at the documentation for NEST 2.x on Connecting。 CallDetails.RequestBodyInBytes
将是 null
除非你在传递给 ElasticClient
的构造函数的 ConnectionSettings
上设置 .DisableDirectStreaming()
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);
Whilst developing it may be useful to log out all requests and responses.
序列化方法现在需要流,它将在其上写入原始 json 查询 - 正常工作对于 Nest 5.3.0:
var stream = new System.IO.MemoryStream();
nestClient.Serializer.Serialize(query, stream);
var jsonQuery = System.Text.Encoding.UTF8.GetString(stream.ToArray());
自从将我的 Nest 客户端升级到 2.2.1 后,我无法看到我提交给我的弹性搜索客户端(现在是 2.3.0 版)的查询。 我曾经使用这一行:
string searchJson = Encoding.UTF8.GetString(client.Serializer.Serialize(myQueryHere));
但是这个方法现在 returns 无效,而不是以前的 JSON。 ConnectionStatus 也不存在,所以我无法再看到我正在发送的 json,有人知道办法吗? CallDetails.RequestBodyInBytes 可用,但 returns 无效。
Take a look at the documentation for NEST 2.x on Connecting。 CallDetails.RequestBodyInBytes
将是 null
除非你在传递给 ElasticClient
ConnectionSettings
上设置 .DisableDirectStreaming()
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);
Whilst developing it may be useful to log out all requests and responses.
序列化方法现在需要流,它将在其上写入原始 json 查询 - 正常工作对于 Nest 5.3.0:
var stream = new System.IO.MemoryStream();
nestClient.Serializer.Serialize(query, stream);
var jsonQuery = System.Text.Encoding.UTF8.GetString(stream.ToArray());