В Интернете нет Java-интерфейса, чтобы показать, как ограничить строки, возвращающиеся из поиска с помощью ElasticSearch для всех элементов. Я попробовал фильтр Limit, но он просто не работал, потому что он вернул бы больше, чем предел. Я знаю его на каждый осколок, но нет никакого способа обойти это. Я не могу найти из/размер запроса/фильтра либо в API JavaElasticsearch захватывает все, но ограничивается определенным числом с помощью Java API
SearchQuery searchQuery = startQuery(limit, null).build();
Iterable<Statement> iterableStatements = esSpringDataRepository.search(searchQuery);
if (iterableStatements != null) {
return IteratorUtils.toList(iterableStatements.iterator());
}
private NativeSearchQueryBuilder startQuery(int limit, QueryBuilder query) {
NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder();
if(query != null) {
searchQueryBuilder = searchQueryBuilder.withQuery(query);
}
if(limit > 0) {
searchQueryBuilder = searchQueryBuilder.withFilter(FilterBuilders.limitFilter(limit));
}
return searchQueryBuilder;
}