Elasticsearch 1.2.0 setzt voll auf Java 7+

Hartmut Schlosser

Der Shooting-Star der Suchszene heißt Elasticsearch. Nachdem Apache Lucene sich in den letzten Jahren als Standard für Textanalyse und Daten-Indizierung durchgesetzt hat, und die auf Lucene aufsetzende Suchplattform Solr alle Komfort-Features für den breitflächigen Einsatz nachlieferte, schien das Thema Suche im Wesentlichen abgedeckt. Da tauchte Elasticsearch vor drei Jahren fast wie aus dem Nichts auf und überzeugt seither immer mehr Unternehmen, beispielsweise Foursquare, Quora, Stack Overflow, GitHub, WordPress, SoundCloud und immobilienscout24. Jetzt hat das Elasticsearch-Team gleich zwei neue Versionen seiner Suchplattform vorgelegt.

Zum einen ist da Elasticsearch 1.1.2, ein reines Bugfix-Release, das mit einigen Fehlern des 1.1.x-Zweigs aufräumt. So gab es neben dem MVEL-Update auf Version 2.2.0.Final unter anderem zahlreiche Fixes im Query API, im Validate Query API sowie Snapshot/Restore API. Eine vollständige Übersicht über alle Änderungen sowie die Links zum Download findet man in den Release Notes.

Zur Sache geht es dann in Elasticsearch 1.2.0, in dem einige interessante Feature-Erweiterungen auftauchen. Wichtig ist zunächst einmal, den Breaking Change zur Kenntnis zu nehmen: Vorausgesetzt wird jetzt Java 7! Elasticsearch 1.2.0 läuft nicht mehr unter Java 6, die empfohlenen JDKs sind Oracles 7u55 oder 7u25 (aufgrund eines JDK-Bugs sollten die dazwischen liegenden JDK-Versionen vermieden werden).

Das Indexing und Merging wurde dahingehend verbessert, dass sehr große Merge-Aktionen nicht mehr die Indizierungs- und Suchgeschwindigkeit beeinträchtigen. Auch Aggregationen sind jetzt schneller und weniger Speicher-intensiv, zudem wurden einige neue Aggregationsfunktionen hinzugefügt. Das scroll API berücksichtigt nun die jeweils aktuellsten Dokumente, die von den Shards zurückgeliefert werden, sodass Deep Scrolling fast so effizient wie scan-scroll sein soll.

Clinton Gormley beschreibt die Neuerungen ausführlich auf dem Entwicklerblog. Zu den Elasticsearch 1.2.0 Release Notes geht es hier.

Elasticsearch Basics

Elasticsearch setzt wie Solr – oder andere Plattformen wie Index Tank oder Bobo Search – auf Lucene auf, unterstützt dabei aber von Haus aus die Aufteilung von Daten auf mehrere Shards und die Daten-Replikation, bei der die Shards auf einem oder mehreren Nodes dupliziert werden, was sich positiv auf Geschwindigkeit und Ausfallsicherheit auswirkt. Bei Yatego konnte laut Studie die Suchperformance durch den Wechsel von einer MySQL-Text-Suche nach Elasticsearch um das 100fache gesteigert werden.

Vom Grundprinzip her ist Elasticsearch ein dokumentenorientierter Data Store, in dem beliebig komplexe JSON-Objekte (documents) gespeichert werden können. Geboten wird eine verteilte, Multitenant-fähige Volltext-Suchengine mit einem RESTful Web Interface und Schema-freien JSON-Dokumenten. Geschrieben ist Elasticsearch in Java, die Features der Lucene Library werden via JSON und Java API verfügbar gemacht. Prinzipiell ist Elasticsearch aber sprachneutral, unterstützt werden neben Java auch JavaScript, PHP, Perl, Python und Ruby.

Zur Einführung in Elasticsearch sei die zweiteilige Serie von Bernhard Pflugfelder und Christian Meder im Java Magazin empfohlen: Suche mit anderen Augen – Elasticsearch unter NoSQL-Gesichtspunkten. Ein Interview mit Projekt-Gründer Shay Banon findet sich in Spotlight on: Elasticsearch auf JAXenter.com.

Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Content-Stratege, IT-Redakteur, Storyteller – als Online-Teamlead bei S&S Media ist Hartmut Schlosser immer auf der Suche nach der Geschichte hinter der News. SEO und KPIs isst er zum Frühstück. Satt machen ihn kreative Aktionen, die den Leser bewegen. @hschlosser
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: