gpt4 book ai didi

java - Elasticsearch 使用 Java API 抓取所有内容,但限制为一定数量

转载 作者:行者123 更新时间:2023-12-01 18:26:34 27 4
gpt4 key购买 nike

没有 Java API 的在线示例来展示如何限制使用 ElasticSearch 搜索所有项目返回的行。我尝试了过滤器限制,但它不起作用,因为它会带回超过限制的内容。我知道它是每个分片的,但是没有办法解决这个问题吗?我在 Java API 中找不到 from/size 查询/过滤器

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;
}

最佳答案

好吧,我让它与此完美配合,而不是限制过滤器:

searchQueryBuilder = searchQueryBuilder.withPageable(new PageRequest(0, limit));

关于java - Elasticsearch 使用 Java API 抓取所有内容,但限制为一定数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25940384/

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