Dieser Blog ist eine kurze Einführung in das Tool „Marple“, einem neuen Lucene Index Tool. Es wird beschrieben, was Marple kann und was nicht, verglichen mit dem bisherigen Tool Luke.
Bisher war Luke das Tool der Wahl, wenn es darum ging einen Solr/Lucene Index zu untersuchen ohne dabei Apache Solr zu konfigurieren. Seit einiger Zeit wird an einem neuen OpenSource Tool gearbeitet, welches sich Marple nennt. Am 24.02.2017 wurde nun die erste Version von Marple veröffentlicht. Bevor Sie sich nun aber Marple 1.0 herunterladen und ausprobieren folgt nun eine kurze Einführung in Marple.
Was ist Marple
Marple ist ein OpenSource Tool zum Inspizieren von Lucene Indexen. Genauer gesagt bietet Marple die Möglichkeit indexierte Felder, DocValues, ganze Dokumente etc. anzuzeigen, unabhängig davon ob der Index nativ, via Solr oder Elasticsearch erstellt worden ist. Somit kann man sehr einfach „offline“ Daten bzw. Indexe überprüfen, ohne eine entsprechende Umgebung, wie beispielsweise eine SolrCloud, einrichten zu müssen.
Marple besteht grundlegend aus zwei Komponenten. Zum einem gibt es ein browserbasiertes User Interface. Die zweite Komponente ist eine Dropwizard Backend Komponente. Im kürzlich erschienen Release sind beide Komponenten in einem Jar File zusammengefasst. Dies macht die Nutzung von Marple sehr einfach. Man muss nur das Jar File vom Github herunterladen und folgendes Kommando ausführen:
Neben dem Pfad zum Index lassen sich auch weitere Dinge konfigurieren, wie beispielsweise der Jetty Port. Um nun Marple zu nutzen, muss man im Browser nur die URL „https://localhost:8080/“aufrufen und schon kann man sich die einzelnen Dokumente und Felder des Indexes genauer ansehen.
Achtung!!! Bei meinen Tests mit der Version 1.0 hat der Internet Explorer (IE 11) nicht funktioniert. Mein Firefox (FF 51) hingegen hat folgende Seite generiert
Wie man auf dem obigen Screenshot sehen kann, bietet Marple die Möglichkeit den Index entweder komplett zu inspizieren oder segment-weise.
Marple vs. Luke
Marple ist vor ca. einem halben Jahr entstanden und kann daher nicht mit dem Funktionsumfang aufwarten, den Luke heutzutage besitzt. Marple bietet momentan nur die Basic-Funktionen, wie Anzeige der indexierten Terme oder der DocValues. Features, wie beispielsweise die Dokumentrekonstruktion, Export von Daten oder Suche sind derzeit noch nicht in Marple enthalten. Man darf sich jedoch von diesem Umstand nicht abschrecken lassen. Schaut man sich die Aktivität in den Github Repositories von Marple und Luke an sieht man, dass aktuell fleißig an Marple entwickelt wird, währenddessen es bei Luke relativ ruhig zugeht.
Sowohl Luke als auch Marple bieten ein User Interface mit dem ein Anwender interagieren kann. Zusätzlich kann man bei Marple auch noch verschiedene Informationen via API abrufen. Folgender Befehl generiert ein JSON Output mit Informationen zu den Feldern in einem Index
https://localhost:8080/api/fieldsDies macht die Nutzung von Marple noch ein wenig flexibler.
Fazit
Wenn jemand „offline“ einen Index untersuchen möchte, brauch er ein Tool wie beispielsweise Luke oder Marple. Für 75% der UseCases wird Marple sicher schon ausreichen, aber nicht für alle UseCases. Möchte man jedoch komplexere Analysen im Index durchführen kommt man momentan an Luke wohl nicht vorbei.