出于调试目的,我们希望监视我们的.Net应用程序(托管在Azure上)发送到Elastic Search(托管在QBox)的查询。我们在REST调用中没有很好地映射/包含的术语存在问题,并希望查看完全发送给ES的内容。
THX 马克
答案 0 :(得分:1)
如果您正在使用NEST客户端进行Elasticsearch。通过检查搜索响应的ConnectionStatus
属性,您可以访问发送到Elasticsearch索引的实际JSON请求。
我今天在我的申请中这样做,其内容类似于以下内容:
var response = client.Search<ElasticsearchProject>(s => s
.Query(q => q.MatchAll()));
var connectionStatus = response.ConnectionStatus;
//output search request send to Elasticsearch
Console.WriteLine(connectionStatus.Request);
答案 1 :(得分:0)
我会尝试使用elasticsearch-jetty插件。它支持可配置的请求记录:
概述
elasticsearch-jetty插件带来Jetty的全部功能并增加 弹性搜索的几个新功能。有了这个插件的弹性搜索 现在可以处理SSL连接,支持基本身份验证和日志 全部或部分以纯文本或json格式传入的请求。
https://github.com/sonian/elasticsearch-jetty
我自己还没有使用它,但我们正在考虑调试格式错误的查询。
或者您可以尝试使用慢速查询日志机制,并将阈值设置为0 ms:
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/index-modules-slowlog.html