Neue Interfaces braucht das Land

Elasticsearch 2.3.0 bringt APIs für Reindex und Task Management

Dominik Mohilo

© Shutterstock.com/N Azlin Sha

Mit dem Update auf 2.3.0 erfreut Elasticsearch seine Nutzer besonders, denn die drei neuen APIs gehören zu den von den Usern am sehnlichsten gewünschten Features überhaupt. Zudem wurde ein Logging eingebaut, das prüft, ob Features genutzt werden, die in der nächsten Hauptversion nickt mehr verfügbar sein werden.

Reindex API

Ob man seine Suchresultate verfeinern oder das Zielfeld-Mapping bzw. die Analysekette verbessern will: Die Reindex-Funktion, um Daten neu zu kategorisieren, ist sehr nützlich. Mit dem aktuellen Update von Elasticsearch wird diese von Usern viel gewünschte Funktion sehr viel einfacher verfügbar.
Während bisher die scroll– und bulk-APIs verwendet werden mussten, ist es nun möglich mit dem neuen _reindex-API sämtliche im Index liegende Dokumente in einem neuen Index mit einem einzigen Befehl zu kategorisieren:

POST _reindex
{
  "source": {
    "index": "my_old_index"
  },
  "dest": {
    "index": "my_new_index"
  }
}

Die zu kategorisierenden Dokumente können dabei von mehreren Indexen kommen und eine Transformierung ist noch während des Prozesses der Kategorisierung möglich. Dies funktioniert per Script, das sogar Zugriff auf die Metadaten des Dokumentes wie _id und _type hat.
Für die Zukunft des Reindex APIs sind unter anderem dynamisches Throttling, Reindex-in-place und das Reindexing von Dokumenten, die nicht auf lokalen Serverclustern liegen, geplant.

Update-by-Query API

Das Update-by-Query API ist ein netter Nebeneffekt der Einführung des Reindex APIs. Per Script ist es durch das Update-by-Query API möglich, sämtliche Dokumente, die einem Query entsprechen, zu updaten. Auch ohne Script ist das neue API nützlich, denn eine leere Update-by-Query-Abfrage kann dazu verwendet werden, nach dem Hinzufügen eines Multi-Fields, die Werte für eben dieses für alle Dokumente, die bereits im Index sind, wieder aufzufüllen.

Weitere Informationen über das Reindex-API und das Update-by-Query API gibt es auf dem Elastic-Blog.

Task Management API

Es gibt wenig, was nerviger sein dürfte, als einen langandauernden Reindex-Prozess zu starten und dann zu merken, dass man einen Fehler gemacht hat, ohne die Möglichkeit den Prozess zu stoppen. Um dieses Problem gar nicht erst aufkommen zu lassen und lang andauernde Tasks zu überwachen und im Zweifel zu stoppen, wurde das Task Management API mit der aktuellen Version von Elasticsearch veröffentlicht. Das API berichtet zudem über sämtliche Tasks, die auf dem jeweiligen Cluster laufen (also auch über Suchen, Indexing-Anfragen, Shard Allocation usw.).

Alle Informationen über das Task Management API sind in der entsprechenden Dokumentation zu finden.

Deprecation Logging

Ob man überholte Features nutzt, die mit der nächsten Hauptversion von Elasticsearch verschwinden werden, ist nicht immer ganz leicht. Um herauszufinden, ob in einer Applikation irgendwo überholte Konstrukte existieren, muss man das Deprecation Logging mit folgender Cluster-Settings-Update-Abfrage aktivieren:

PUT _cluster/settings
{
  "transient": {
    "logger.deprecation": "DEBUG"
  }
}

Alle Fälle, in denen veraltete Features verwendet werden, werden auf diese Weise in der Datei elasticsearch_deprecation.log im Log-Verzeichnis gespeichert. Um das Logging wieder zu deaktivieren, stellt man logger.deprecation wieder auf INFO.

Die neueste Version von Elasticsearch basiert auf Lucene 5.5.0 und ist über die entsprechende Downloadseite verfügbar. Wer noch nicht auf die aktuellste Version umsteigen will, für den stellt Elastic das Bug Fix Release 2.2.2 zur Verfügung, das noch auf Lucene 5.4.1 basiert. Probleme können zudem auf der GitHub-Seite von Elasticsearch gepostet werden, eine komplette Änderungsübersicht ist dem Release-Notes zu entnehmen.

Aufmacherbild: Hand holding elastic spring coil on empty background. Concept of business flexibility. Slightly de-focused and close-up shot. Copy space. von Shutterstock / Urheberrecht: N Azlin Sha

Verwandte Themen:

Geschrieben von
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: