如何监控发送到弹性搜索的查询

时间:2014-05-28 11:36:41

标签: elasticsearch

出于调试目的,我们希望监视我们的.Net应用程序(托管在Azure上)发送到Elastic Search(托管在QBox)的查询。我们在REST调用中没有很好地映射/包含的术语存在问题,并希望查看完全发送给ES的内容。

THX 马克

2 个答案:

答案 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