2016-03-27 5 views
1

Ich habe versehentlich gefunden, dass die "Gesamt" -Nummer im Suchergebnis nicht zur Anzahl der zurückgegebenen Treffer passt. Mir ist das aufgefallen, als nur ein paar Items für die gegebene Anfrage zurückgegeben wurden, so dass es im Suchergebnis leicht zu überprüfen war. Zum Beispiel, wie unten die Abfrage:Die Gesamtzahl stimmt nicht mit den zurückgegebenen Treffern überein.

{ 
    "from" : 1, 
    "size" : 9, 
    "query" : { 
    "bool" : { 
     "must" : { 
     "query_string" : { 
      "query" : "quad", 
      "default_field" : "_all" 
     } 
     } 
    } 
    } 
} 

... gibt Antwort wie folgt aus:

"hits":{"total":8,"max_score":1.2086515,"hits":[...]} 

... das sagt 8 Artikel gibt es in Folge ist aber 'Treffer' Array enthält nur 7 Elemente. Ich habe verschiedene Suchanfragen ausprobiert (das gibt bis zu 9 Elemente zurück, da es mein "Größenlimit" ist) und die Arraygröße "Treffer" war total-1. Wie könnte es sein, dass es nicht passt?

Antwort

0

Elasticsearch würde size-from Ergebnisse in der hit Array zurückgeben. Von der documentation:

von definiert den Offset von dem ersten Ergebnis, das Sie abrufen möchten.

In der Abfrage in OP wäre dies gleich 8 Ergebnisse. Wenn Sie 9 Ergebnisse möchten, sollten Sie from:0, die das erste Ergebnis enthalten, festlegen.

Beispiel:

{ 
    "from" : 0, 
    "size" : 9, 
    "query" : { 
    "bool" : { 
     "must" : { 
     "query_string" : { 
      "query" : "quad", 
      "default_field" : "_all" 
     } 
     } 
    } 
    } 
} 
+0

Wie konnte ich das "von" übersehen: 1 :-(Vielen Dank !! –

Verwandte Themen