2017-10-09 4 views
1

Ich verwende elastische Suche als Suchwerkzeug in meiner Anwendung ...Wie Sie Paginierung für elastische Suche hinzufügen

Ich habe 9 Datensätze in meinem db.

Meine Seite Größe 5.

So erstes Mal ist, wird es mir 5 Aufzeichnungen geben, die durch meinen Code funktionieren prima ...

Jetzt zweites Mal, wenn ich scrollen soll es mir 4 Aufzeichnungen geben und Dann sollte Scrolling mir 0 Datensätze geben.

{

"from" : 0, "size" : size, 
    "query" : { 
     "term" : { "user" : "kimchy" } 
    } 
} 

ich für die Suche nach obigem Code verwenden.

mit obigen code die daten nicht ordnungsgemäß als erstes mal gibt es mir 5 sätze, 2. zeit auch es gibt mir 5 sätze dann wird es zählen als 4,3,2.

Bitte helfen Sie mir Seitenumbruch in meinem Code zu ermöglichen.

Antwort

1

Was geben Sie das zweite Mal als from Wert? Können Sie Ihre Anfrage im zweiten Abfrageaufruf posten?

Tipp: Es sollte from: 5 und nicht from: 1 sein. Es ist kein Seitenzähler, sondern ein Aufzeichnungszähler.

0

Du musst

passieren
1st time 
"from" : 0, 
"size" : 5 


2nd time 
"from" : 5, 
"size" : 5 

Ihre Abfrage wie die Suche wird

{ 
    "query": { 
    ... Your elasticsearch query 
    }, 
    "_source": [ 
    .... Columns To retrieve 
    ], 
    "sort": [ 
    .... Sorting information 
    ], 
    "from": 0, 
    "size": 5 
} 

Das für Elasticsearch ist 2.3

+0

Hallo, Vielen Dank für Ihre Antwort .. obwohl ich ändern Von "Wert" bekomme ich nur die ersten fünf Datensätze –