findAllByFoo
在 Spring Data Elasticsearch 中 - 我注意到生成的类型方法看起来像一个错误。这些似乎仅限于默认大小(10) - 这与您期望从findAll
操作中获得的语义背道而驰。
但是,主要findAll()
操作确实可以正常工作并返回所有文档。
那么-这是一个错误还是我遗漏了什么?干杯,尤金。
findAllByFoo
在 Spring Data Elasticsearch 中 - 我注意到生成的类型方法看起来像一个错误。这些似乎仅限于默认大小(10) - 这与您期望从findAll
操作中获得的语义背道而驰。
但是,主要findAll()
操作确实可以正常工作并返回所有文档。
那么-这是一个错误还是我遗漏了什么?干杯,尤金。
它看起来不像一个错误。
根据 elasticsearch 的文档(from/size),看起来 10 是 elasticsearch 从搜索查询返回的默认结果数。
您可以使用适当的 Pageable 参数修改页面大小,例如:
Page<User> users = repository.findAll(new PageRequest(1, 20))
您可以使用ElasicsearchTemplate
搜索多个节点并提供所需的 pageRequest(或结果)数。默认值为 10。
@Autowired
private ElasticsearchTemplate elasticsearchTemplate;
public List<MyElasticDocument> getData() {
String textToSearch = "John";
QueryBuilder query = QueryBuilders.boolQuery()
.should(
QueryBuilders.queryStringQuery(textToSearch)
.lenient(true)
.field("jsonNode1")
)
.should(
QueryBuilders.queryStringQuery(textToSearch + "*")
.lenient(true)
.field("jsonNode2")
.field("jsonNode3")
);
NativeSearchQuery build = new NativeSearchQueryBuilder()
.withQuery(query)
.withPageable(new PageRequest(0, 20)) // provide the no. of results you want
.build();
List<MyElasticDocument> elasticDocumentList = elasticsearchTemplate.queryForList(build, MyElasticDocument.class)
return elasticDocumentList;
}
根据https://jira.spring.io/browse/DATAES-58,它按设计工作,不会更改。阅读本期评论,了解性能背景。