Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Elasticsearch Grundkurs

Scrolling statt Pagination verwenden

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Möchten Sie sicherstellen, dass Ergebnisse konsistent bleiben, sollten Sie statt einer regulären Pagination mit dem sogenannten Scrolling arbeiten. Machen Sie sich anhand dieses Videos zunächst mit den Begrifflichkeiten vertraut und erfahren Sie, warum das Scrolling der Pagination vorgezogen werden sollte.

Transkript

Elasticsearch implementiert einen besonderen Mechanismus, um durch Ergebnisse einer Suche zu navigieren. Das sogenannte Scrolling. Scrolling dient also dem Zweck sukzessive die Ergebnisse einer Suchanfrage von Elasticsearch abzurufen. Wie Sie Scrolling verwenden können, werde ich Ihnen nun im Folgenden demonstrieren. Dafür beginne ich zunächst einmal damit, meinen Index mit den 250 besten Filmen nach IMDB Rating zu befüllen. Als nächstes definiere ich nun meine Suchanfrage. Beispielsweise kann ich hier einen boolischen Query verwenden, um 2 Kriterien festzulegen, wie die Suche nach dem Genre "Drama", als auch alle Filme die neuer sind, als das Jahr 2000. Außerdem möchte ich lediglich 2 Ergebnisse pro Suchanfrage bekommen. An dieser Stelle ist noch alles unabhängig vom Scrolling. Ich verwende auch den regulären Suchendpunkt. Zusätzlich definiere ich allerdings den URL-Parameter "scroll" mit einer Zeitangabe von 3 Minuten. Konkret heißt das jetzt, dass Elasticsearch diese Suche ausführen wird und die restlichen Ergebnisse, die ich noch nicht erhalten habe in meiner ersten Abfrage, also die Ergebnisse, die mehr als die ersten 2 Elemente sind, werden mir innerhalb des Caches von Elasticsearch bereitgehalten. Ich führe also diese Suche nun aus und bekomme meine ersten 2 Ergebnisse. Außerdem erhalte ich eine sogenannte "scroll_id". Diese kann ich nun kopieren und für weitere Scolling verwenden. Um nun auf dieser Suche weiter zu scrollen, muss ich einen besonderen Endpunkt verwenden. Dieser befindet sich nicht mehr auf meinen Index, sondern auf meiner Elasticsearchinstanz selbst unter "_search". Und dort auf dem Endpunkt "scroll". Hierfür übergebe ich nicht mehr die Suchanfrage als solches, sondern lediglich die "Scroll_ID", die ich zuletzt erhalten habe, als auch eine weitere Zeitangabe für den nächsten "scroll". Das bedeutet, nachdem ich die nächsten Ergebnisse erhalten werde, werden die weiteren Ergebnisse weitere 3 Minuten für mich bereitgehalten. Ich bekomme nun also wieder lediglich 2 Dokumente, wie ursprünglich angegeben, die genau meine Kriterien erfüllen. Außerdem erhalte ich eine neue "scroll_id". Diese neue "scroll_id" ist also nun gültig für die nächsten 3 Minuten und kann ähnlich, wie in der bereits vorgenommenen Abfrage, angegeben werden. Diesen Vorgang würde ich nun solange wiederholen, bis innerhalb meiner "Hits" keine Ergebnisse mehr vorhanden sind. Denn dann habe ich alle Ergebnisse aus der ursprünglichen Abfrage bereits abgerufen. Da alle Ergebnisse zwischengespeichert werden, garantiert mir Elasticsearch hier auch, dass sich an meinen Ergebnissen nach dem ersten Starten der Suche nichts mehr verändern wird. Um den Mechanismus des Scrollings nun also nutzen zu können, geben wir bei der ursprünglichen Suchanfrage den URL Parameter "scroll" mit. Dieser benötigt zusätzlich eine Angabe in Form von Zeit. Üblich sind hier 3 Minuten. Dieser Wert kann allerdings auch deutlich höher oder niedriger angegeben werden, mit der jeweiligen Zeiteinheit am Ende der Ziffer. Auf diese Suchanfrage erhalte ich neben den ersten Ergebnissen eine sogenannte "scroll_ID". Diese muss ich dann verwenden, um auf dem "/_search"-Endpunkt meine Elasticsearchinstanz weitersuchen zu können. Anders als bei der Angabe von "from" und "size" werden hier meine Ergebnisse zwischengecacht. Das bedeutet, dass beim Scrolling keine zusätzliche Performance fällig wird, wie als wenn ich die Suchanfrage mehrfach neu ausführe und lediglich den Cursor meiner Suchanfrage um einige Dokumente verschiebe.

Elasticsearch Grundkurs

Lernen Sie, Elasticsearch und seine Einsatzgebiete zu verstehen und mit der API zu interagieren.

2 Std. 19 min (23 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Themen:
Programmierung
Exklusiv für Abo-Kunden
Erscheinungsdatum:23.02.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!