我正在为我的python应用程序使用elasticsearch- dsl查询elasticsearch。
为了调试elasticsearch-dsl库实际生成的查询,我无法记录或打印最终查询到elasticsearch的查询。
例如,就像看到发送到elasticsearch的请求正文一样:
{ "query": { "query_string": { "query": "Dav*", "fields": ["name", "short_code"], "analyze_wildcard": true } } }
试图将elasticsearch日志级别提高到TRACE。即使这样,也无法看到已执行的查询。
看看我的博客文章在这里, “以指数级Slowlog设置” 一节。基本上,您可以使用slowlog在Elasticsearch生成的独立日志文件中打印查询。我建议使用非常低的阈值以能够查看 所有 查询。
例如,对于特定索引,如下所示:
PUT /test_index/_settings { "index": { "search.slowlog.level": "trace", "search.slowlog.threshold.query.trace": "1ms" } }
要么
PUT /_settings { "index": { "search.slowlog.level": "trace", "search.slowlog.threshold.query.trace": "1ms" } }
作为所有索引的群集范围设置。
查询将记录在您的/logs位置,即名为的文件[CLUSTER_NAME]_index_search_slowlog.log。
/logs
[CLUSTER_NAME]_index_search_slowlog.log