jlg*_*dez 1 elasticsearch spring-data spring-data-elasticsearch
出于调试目的,我需要知道spring-data-elasticsearch正在向ElasticSearch集群发送什么查询.我试图toString在SearchQuery对象上调用方法,但不返回我需要的东西.
我在Java中做的事情(使用spring-data-elasticsearch)是:
private FilterBuilder getFilterBuilder(String id) {
return orFilter(
termFilter("yaddayaddayadda.id", id),
termFilter("blahblahblah.id", id)
);
}
SearchQuery sq = NativeSearchQueryBuilder()
.withQuery(new MatchAllQuery())
.withFilter(fb)
.build();
Run Code Online (Sandbox Code Playgroud)
我希望返回类似ES集群REST API中执行的简单查询返回的内容:
{
"query": {
"filtered": {
"filter": {
"or": [
{
"term": {
"yaddayaddayadda.id": "9"
}
},
{
"term": {
"blahblahblah.id": "9"
}
}
]
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢!
实现此目的的一种方法是将ES /服务器端的查询记录到slowlog文件中.打开elasticsearch.yml配置文件,然后在底部取消注释/编辑以下两行:
...
index.search.slowlog.threshold.query.info: 1ms
...
index.search.slowlog.threshold.fetch.info: 1ms
...
Run Code Online (Sandbox Code Playgroud)
此解决方案的优势在于,无论您使用什么客户端技术查询ES服务器(Spring数据,Ruby,浏览器,Javascript等),您都可以在单个位置转储和调试查询.
| 归档时间: |
|
| 查看次数: |
2204 次 |
| 最近记录: |