我使用elasticsearch-dsl为我的python应用程序查询弹性搜索。
要调试elasticsearch-dsl库实际生成的查询,我无法记录或打印发送到elasticsearch的最终查询。
例如,喜欢看到发送到elasticsearch的请求体,如下所示:
{
"query": {
"query_string": {
"query": "Dav*",
"fields": ["name", "short_code"],
"analyze_wildcard": true
}
}
}
尝试将elasticsearch日志级别引入TRACE。即使这样,也无法看到执行的查询。
答案 0 :(得分:2)
查看我的博文here,“索引级别的慢速日志设置”部分。基本上,您可以使用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
的文件。