Blog der SHI GmbH

In diesen Tagen wird ein neues Minor-Release von Lucidworks Fusion veröffentlicht. Dieses bietet neben allgemeinen Verbesserungen natürlich auch einige Ansätze, die widerspiegeln was aktuelle Trends im Bereich Search und Big Data im Allgemeinen sind: Datenmodellierung, Indexierung von zeitbasierten Daten (Log-Events, von Usern generierte Daten, Tweets etc.) und bessere Integration von Tools im Bereich Machine Learning. Die nachfolgende Zusammenfassung gibt einen Überblick über die Highlights des neuen Releases.

Allgemeine Verbesserungen

Zu den Optimierungen genereller Art zählen Versionsupdates zentraler Komponenten. So sind im neuen Release Solr 5.4.1, Tika 1.12 und Spark 1.6.1 zu finden. Gerade die letzten beiden zeigen, dass Lucidworks viel Zeit investiert und Aufwand betreibt, um möglichst schnell von Weiterentwicklungen anderer Open Source Projekte zu profitieren. Tika zur Inhaltsextraktion und Spark für schnelle Verarbeitung von Daten sowie Machine Learning.

AuĂźerdem wurden das Security-Framework (z.B. SAML-basierte Absicherung) und das Connector-Framework (Verbesserungen des Azure- und Github-Connectors) weiter optimiert.

Datenmodellierung

In jeder Applikation, die auf Daten basiert (und dazu zählen alle such-basierten Applikationen), geht es irgendwann darum, Daten aufzubereiten, zu modellieren, anzureichern usw. Das war bisher schon mittels Index Pipelines möglich, die schon in der ersten Version von Fusion integriert waren. Was bisher nicht oder nur unzureichend funktionierte: Eine Art Entwicklung und ein standardisiertes Vorgehen, diese Pipelines mit angemessenem Aufwand zu testen. Diese Notwendigkeit wurde erkannt wird nun mit Index Pipeline Previews adressiert. Diese erlauben eine Vorschau der einzelnen Pipeline-Stages, ohne Daten indexieren, ohne bestehende Pipelines überschreiben oder ändern zu müssen. Ebenso ist ein kopieren, speichern und zusammenführen von Pipelines bei Fertigstellung möglich. Eine durchaus nennenswerte Optimierung, die eine erhebliche Vereinfachung vieler Modellierungsschritte bedeutet.

Indexierung zeitbasierter Daten

Das Internet of Things (IoT) oder auch das Internet of Everything (IoE) resultieren in einem massiven Zuwachs an Daten. Diese Daten sind häufig mit einem Timestamp, also dem Zeitpunkt der die Generierung dieses Events beschreibt, versehen. Einige Use Cases sind darauf ausgelegt, diese Daten einerseits sicher ganzheitlich zu betrachten, andererseits aber auch Daten eines gewissen Zeitfensters (ein Tag, eine Woche, ein Monat) in regelmäßigen Abständen auszuwerten. Um hier bestmögliche Performance zu erzielen, gibt es nun beim Anlegen von Collections nicht mehr nur die Möglichkeit, die Anzahl der Shards und den Grad der Replikation zu bestimmen, sondern auch Einstellungen vorzunehmen, die dafür sorgen, dass z.B. Daten die älter als zehn Tage sind, zu archivieren und die so frei werdenden Ressourcen für neu eintreffende Daten zu verwenden. Das erleichtert das Anlegen von Collections für Anwendungen, die auf zeitbasierten Daten aufbauen, ungemein. Intelligentes Query Parsing sorgt dafür, dass optimal auf die einzelnen Shards zugegriffen wird, was somit einen zusätzlichen Vorteil hinsichtlich Performance schafft.

Bessere Spark Integration

Spark wurde bereits vor einiger Zeit in Fusion integriert, um bestimmte Aggregation Jobs optimiert laufen zu lassen. Diese Integration wurde nun tiefer verwurzelt. Dadurch werden folgende Vorteile erzielt:

  • Verwendung von Spark Streaming und die Lokalität der Daten erzielt signifikante Performance-Verbesserungen.
  • Verwendung der Spark-Shell aus der Fusion-Umgebung ermöglicht Rapid Prototyping sowie schnelle Tests von der Kommandozeile aus.
  • Neue Spark Job Types werden unterstĂĽtzt: Aggregations, Script, Item Similarity, Quality.
  • Auf die Spark Job API kann ĂĽber /spark/jobs zugegriffen werden.
  • Eigene Spark Jobs können geschrieben und ausgefĂĽhrt werden, was die Verwendung von allen zeitgemäßen Machine Learning Libraries ermöglicht: MlLib, Mahout und DL4J.
  • Die Textanalyse-Fähigkeiten von Lucene können nun von Spark aus verwendet werden, um nicht auf die rudimentären und profanen Textverarbeitungsmittel im Spark –Default zurĂĽckgreifen zu mĂĽssen. Nähere Informationen zu den neuen Analysefunktionen vom solr-spark Toolkit sind im Blog von Lucidworks zu finden.

Grant Ingersoll gab in dem Webinar, das diese Neuerungen, vorstellte auch einen kurzen Ausblick auf das, was vom nächsten Release zu erwarten ist. Die Highlights beinhalten Solr 6.x Integration, Java 8 und einen Query Pipeline Builder, der analog zu, Index Pipeline Builder zu sehen ist.

Wer Fusion und die hier erwähnten Verbesserungen in Aktion sehen will, schaute sich am besten die Aufzeichnung des Webinars an, das Lucidworks zur Verfügung stellt oder lädt sich direkt Fusion herunter.

In seiner Demo erwähnte und zeigte Grant Ingersoll auch das neueste Mitglied der Lucidworks-Produktfamilie: Lucidworks View. Hiermit wird ein grafischer Aufsatz auf Fusion geboten, der die Daten in einer weniger technischen und ansprechenden sowie voll anpassbaren Form durchsuchbar machen kann. Auf View werden wir in einem zukünftigen Beitrag eingehen.

Daniel Wrigley

Daniel Wrigley