python elasticsearch dsl_如何记录或打印被调用的python elasticsearch-dsl查询

I am using elasticsearch-dsl for my python application to query elastic search.

To debug what query is actually getting generated by elasticsearch-dsl library, I am unable to log or print the final query that goes to elasticsearch.

For example, like to see the request body sent to elasticsearch like this :

{

"query": {

"query_string": {

"query": "Dav*",

"fields": ["name", "short_code"],

"analyze_wildcard": true

}

}

}

Tried to bring the elasticsearch log level to TRACE. Even then, unable to see the queries that got executed.

解决方案

Take a look at my blog post here, "Slowlog settings at index level" section. Basically, you can use slowlog to print in a separate log file Elasticsearch generates, the queries. I suggest using a very low threshold to be able to see all the queries.

For example, something like this, for a specific index:

PUT /test_index/_settings

{

"index": {

"search.slowlog.level": "trace",

"search.slowlog.threshold.query.trace": "1ms"

}

}

Or

PUT /_settings

{

"index": {

"search.slowlog.level": "trace",

"search.slowlog.threshold.query.trace": "1ms"

}

}

as a cluster-wide setting, for all the indices.

And the queries will be logged in your /logs location, a file called [CLUSTER_NAME]_index_search_slowlog.log.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值