У меня есть следующее: Я замечаю, что в конце запуска кода, если я распечатаю aggregations.asMap(). Get ('subject'); Я получаю: [email protected]cff59faКак получить ответ elsonearch json с использованием скоплений в spring-data-elasticsearch?
печать из "агрегирование" дает мне: [email protected]21d
Я действительно хочу, чтобы весь ответ строки/json, который обычно возвращался, если вы должны завивать на elasticsearch, чтобы получить скопления. Как получить исходный ответ из запроса агрегации? Кроме того, есть ли способ итерации и распечатки того, что находится в этих «обернутых» объектах?
@Test
public void shouldReturnAggregatedResponseForGivenSearchQuery() {
// given
SearchQuery searchQuery = new NativeSearchQueryBuilder()
.withQuery(matchAllQuery())
.withSearchType(COUNT)
.withIndices("articles").withTypes("article")
.addAggregation(terms("subjects").field("subject"))
.build();
// when
Aggregations aggregations = elasticsearchTemplate.query(searchQuery, new ResultsExtractor<Aggregations>() {
@Override
public Aggregations extract(SearchResponse response) {
return response.getAggregations();
}
});
// then
System.out.println(aggregations); // gives me some cryptic InternalAggregations object, how do I get to the raw JSON normally returned by elasticsearch?
System.out.println(aggregations.asMap().get("subjects")); // gives me some StringTerms object I have no idea how to iterate over to get results
}
есть что-нибудь, что позволяет мне пройти в необработанном формате JSON без необходимости использовать все эти строитель, чтобы сделать запрос? – Rolando
Я так не думаю. Весь смысл этого API заключается в том, чтобы упростить сбор запросов без необходимости использования JSON. – Val
@ Rolando Я наткнулся на шаблоны elasticsearch и, похоже, вот что я скоро буду использовать. Попытка выяснить JAVA API, а затем использовать файл ellogearch slowlog, чтобы соответствовать, если запрос был прав, сумасшедший! – dy10