2011-02-14 3 views
9

Je suis nouveau sur Elastic Search. Est-il possible d'obtenir tous les résultats de recherche pour un mot-clé de recherche? La recherche élastique est limitée à 10 sinon nous pouvons définir la taille mais nous devons obtenir la taille ??Comment obtenir toutes les valeurs d'un résultat de recherche

+1

Je recommanderais d'utiliser la recherche par défilement pour extraire tous les enregistrements (comme la pagination). http://www.elasticsearch.org/guide/fr/elasticsearch/reference/current/search-request-scroll.html – Emil

Répondre

15

Oui, le numéro par défaut des résultats de recherche est 10.

Vous devez set the size parameter sur la requête.

Je ne pense pas que vous disiez "tous les résultats", cependant, il doit toujours y avoir une limite de taille.

+0

oui mais j'ai besoin d'obtenir la taille totale en premier – raagavan

+0

@raagavan: Taille totale de quoi? – skaffman

+0

@skaffman voir si je recherche un mot-clé 'example' s'il est dans 200 document j'ai besoin d'afficher les 200 résultats .. – raagavan

4

Si vous utilisez l'API JAVA, vous pouvez simplement obtenir le nombre total de succès de la SearchResponse

SearchRequestBuilder srb = .. 
SearchResponse sr = srb.execute().actionGet(); 
long totalHits = sr.getHits().getTotalHits(); 
0

Vous pouvez le faire en deux étapes en utilisant un code

  1. fixer une taille dire 1000 et obtenir tous les 1000 enregistrements.
  2. indiquerons de hits.total si la taille est inférieure à 1000. (si petite, vous avez tous les enregistrements :))
  3. utiliser Sinon from and size pour fournir 1001 à partir et total que la taille de la requête précédente pour obtenir le résultat complet.
Questions connexes