我正在弹簧启动应用程序中尝试弹性搜索,我想调试ElasticsearchRepository执行的查询。
试图
logging.level.org.elasticsearch.index.search.slowlog.query=INFO
spring.data.elasticsearch.properties.index.search.slowlog.threshold.query.info=1ms
但是我没有在日志中看到查询打印
答案 0 :(得分:5)
使用Springboot 2.2.6和RestHighLevelClient
,以下工作有效:
logging.level.org.springframework.data.elasticsearch.client.WIRE : trace
这也记录在springboot-data-elasticsearch
中但是,您需要注意以文档中所述的相同方式初始化RestHighLevelClient
bean。也就是说,使用ClientConfiguration
构建器。
最初,我将bean创建为new RestHighLevelClient()
,但是它没有用。
示例:
@Bean(destroyMethod = "close")
public RestHighLevelClient restClient() {
ClientConfiguration clientConfiguration = ClientConfiguration.builder()
.connectedTo(esHost +":" + esPort).usingSsl()
.build();
RestHighLevelClient client = RestClients.create(clientConfiguration).rest();
return client;
}
答案 1 :(得分:2)
在Spring Boot 2中,您可以使用以下命令启用查询调试:
logging.level.org.springframework.data.elasticsearch.core=DEBUG
生成的日志将类似于:
{
"from" : 0,
"size" : 10,
"query" : {
"bool" : {
"must" : [
{
"query_string" : {
"query" : "some string",
"fields" : [
"nome^1.0"
],
"use_dis_max" : true,
"tie_breaker" : 0.0,
"default_operator" : "and",
"auto_generate_phrase_queries" : false,
"max_determinized_states" : 10000,
"enable_position_increments" : true,
"fuzziness" : "AUTO",
"fuzzy_prefix_length" : 0,
"fuzzy_max_expansions" : 50,
"phrase_slop" : 0,
"escape" : false,
"split_on_whitespace" : true,
"boost" : 1.0
}
}
],
"disable_coord" : false,
"adjust_pure_negative" : true,
"boost" : 1.0
}
},
"version" : true
}
最好的问候。
答案 2 :(得分:1)
我尝试了其他答案,但在Spring Boot 2.2.2和elasticsearch 6.7.2中不起作用,以下内容对我有用,可能是因为我使用了RestHighLevelClient
来获取我拥有的请求和响应正文在下面的application.properties文件中启用apache http记录
logging.level.org.elasticsearch.client=TRACE
logging.level.org.apache.http=TRACE
答案 3 :(得分:0)
我没用其他答案,最后认出问题如下。希望它对有相同(错误)方法的人有所帮助!
我最初使用 Spring Boot Admin(它是 Spring Boot /actuator
的包装器)的“更改日志级别”功能来更改日志级别。它适用于普通组件,但奇怪的是,它不适用于 elasticsearch。
所以,我必须写下来
logging:
level:
org.springframework.data.elasticsearch.client.WIRE: TRACE
在我的 application.yml
中。并且必须重新部署整个应用程序。然后一切正常,我看到了日志。