2

J'essaie de récupérer des informations paginables à partir d'elasticsearch 5.4.0 en utilisant spring-boot-starter-data-elasticsearch 2.0.0.BUILD -SNAPSHOT qui utilise spring-data-elasticsearch 3.0.0.BUILD-SNAPSHOT, mais cela ne fonctionne pas comme prévu.Mauvaise pagination à l'aide de Spring Data ElasticSearch 3.0.0.BUILD-SNAPSHOT avec Elasticsearch 5.4.0

Page<Customer> page = this.repository.findByLastName("Smith", PageRequest.of(0, 1)); 

System.out.println("page = " + page); 
System.out.println("page.getSize() = " + page.getSize()); 
System.out.println("page.getTotalPages() = " + page.getTotalPages()); 
System.out.println("page.getTotalElements() = " + page.getTotalElements()); 
System.out.println("page.getNumber() = " + page.getNumber()); 
System.out.println("page.getNumberOfElements() = " + page.getNumberOfElements()); 
System.out.println("page.nextPageable().isUnpaged() = " + page.nextPageable().isUnpaged()); 
System.out.println("page.getContent() = " + page.getContent()); 

Ce code retourne:

page = Page 1 of 1 containing sample.data.elasticsearch.Customer instances 
page.getSize() = 0 
page.getTotalPages() = 1 
page.getTotalElements() = 4 
page.getNumber() = 0 
page.getNumberOfElements() = 1 
page.nextPageable().isUnpaged() = true 
page.getContent() = [Customer[id=AV304Kn3zw7_0HN9017l, firstName='Alice', lastName='Smith']] 

Même s'il y a 4 éléments au total, il n'y a qu'une seule page, et la taille est 0. Je l'ai essayé avec les anciennes versions stables du ressort des données -elasticsearch et elastic-search 1.x et 2.x et cela a bien fonctionné. Pour les besoins de l'exemple, j'ai modifié l'exemple de projet à partir du dépôt officiel de spring-boot. (https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-data-elasticsearch)

Répondre

0

Semble que vous avez le même problème que nous. J'ai trouvé une explication sur Spring Data Elasticsearch Jira DATAES-402. Malheureusement, dans la version 3.0.2, le bug persiste.