Для целей отладки, мне нужно знать, какой запрос spring-data-elasticsearch отправляется в кластер ElasticSearch. Я попытался вызвать метод toString
на объекте SearchQuery
и не возвращает то, что мне нужно.Получение строкового запроса (JSON) из объекта SearchQuery
Что я делаю в Java (с использованием пружинного данных-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"
}
}
]
}
}
}
}
Заранее благодарим!
Я попробовал это, и это не является оптимальным решением, так как запросы, которые я получил, были преобразованы в двоичную форму в журналы. Так что мой запрос в журналах выглядел так: '{ "от": 0, "размер": 20, "query_binary": "eyAicXVlcnkiOiB7ICJxdWVyeV9zdHJpbmciIDogeyAiZmllbGRzIiA6IFsicG9ydE5hbWUiLCAiY291bnRyeU5hbWUiXSwgInF1ZXJ5IjoiKmUqIn19LCAic29ydCIgOiBbeyAicG9ydElkIiA6IHsgIm9yZGVyIjogIkFTQyIgfX1dfQ =="}'. Хотя, когда я запускал этот запрос, я получил те же результаты, но не могу отлаживаться. –