2016-11-23 1 views
0
  1. Utilisation du repos-clients/_RECHERCHE size = 100 & de = 500, capable d'aller chercher les résultatselasticsearch: navigation Page Consécutif à l'aide des résultats printemps-données-ElasticSearch vide après certaines limites

    ne marche même travailler à l'étape ci-dessous en utilisant le code

  2. Utilisation du ressort-data-ElasticSearch suivant ci-dessous avec des extraits de code en utilisant la taille = 100, de = 500, les résultats sont vides

    Note: Il alla chercher les résultats avec succès une fois, i.e. après la création d'index

    NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder(); 
    
    nativeSearchQueryBuilder.withIndices("indexName"); 
    nativeSearchQueryBuilder.withTypes("someType"); 
    nativeSearchQueryBuilder.withPageable(new PageRequest(500, 100)); 
    SearchQuery searchQuery = nativeSearchQueryBuilder.build(); 
    elasticsearchTemplate.queryForList(searchQuery, 
          className); 
    

    Avons-nous besoin d'ajouter une étape supplémentaire pour les extraits ci-dessus pour obtenir les résultats souhaités?

Répondre

1

Le PageRequest constructor ne prend pas from et size comme arguments, mais page et size qui est différent, parce que page et from ne sont pas les mêmes.

Si vous voulez que vos pages contiennent 100 éléments, alors au lieu de from=500 vous devez utiliser page=5

nativeSearchQueryBuilder.withPageable(new PageRequest(5, 100)); 
+0

Merci compris, son correcte, pourquoi api de recherche élastique ne marche pas avoir un tel soutien, même est pris en charge à partir restclient? –

+0

C'est la même chose juste implémentée différemment, juste page + taille au lieu de + taille. 'PageRequest' vient de Spring Data Core et est une abstraction adaptée à tout type de banque de données sous-jacente (ES, JPA, MongoDB Cassandra, etc.). Sous le capot, 'PageRequest' utilise également/size lorsqu'il est utilisé contre Elasticsearch. – Val

+0

Merci @Val pour l'explication détaillée –