gpt4 book ai didi

elasticsearch - 从 SearchQuery 对象获取字符串查询 (JSON)

转载 作者:行者123 更新时间:2023-12-02 09:33:26 27 4
gpt4 key购买 nike

出于调试目的,我需要知道 spring-data-elasticsearch 向 ElasticSearch 集群发送了什么查询。我尝试调用 SearchQuery 对象上的 toString 方法,但没有返回我需要的内容。

我在 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();

我希望返回类似在 ES 集群 REST API 中执行的普通查询返回的内容:

{
"query": {
"filtered": {
"filter": {
"or": [
{
"term": {
"yaddayaddayadda.id": "9"
}
},
{
"term": {
"blahblahblah.id": "9"
}
}
]
}
}
}
}

提前致谢!

最佳答案

实现此目的的一种方法是将 ES/服务器端的查询记录到慢日志文件中。打开您的 elasticsearch.yml 配置文件并在底部取消注释/编辑以下两行:

...
index.search.slowlog.threshold.query.info: 1ms
...
index.search.slowlog.threshold.fetch.info: 1ms
...

此解决方案的优势在于,无论您使用何种客户端技术来查询您的 ES 服务器(Spring Data、Ruby、浏览器、Javascript 等),您都可以在一个位置转储和调试您的查询.

关于elasticsearch - 从 SearchQuery 对象获取字符串查询 (JSON),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30307398/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com