ElasticSearch C# Elasticsearch.Net 获取原始ES查询JSON
我们C# 中使用 Elasticsearch.Net ,nest 连接ES操作数据的时候,想要获取Elasticsearch.Net.dll 发给 es 的请求json数据有两种方式。
1、创建客户端的时候 加上 DisableDirectStreaming 方法,但是如果一直开启会损耗性能。
var settings = new ConnectionSettings(pool).DisableDirectStreaming().RequestTimeout(TimeSpan.FromSeconds(30));
加上之后,正常发起对ES的请求,然后再结果里面有个属性DebugInformation,位置在((Elasticsearch.Net.ApiCallDetails)((Elasticsearch.Net.IElasticsearchResponse)aaa).ApiCall).DebugInformation,就能看到请求和输出的json后的数据了。

然后在 DebugInformation里面就能看到l
2、使用 ElasticClient.RequestResponseSerializer()
Func<SearchDescriptor<Test>, ISearchRequest> selector = r => r.Query(q => q.Bool(boolQuery)).Aggregations(a => a.Terms("categoryIds", c => c.Field(p => p.CatetoryID))).Size(0);
var requestJson= _client.RequestResponseSerializer.SerializeToString(selector.Invoke(new SearchDescriptor<Test> ()));


浙公网安备 33010602011771号