Zum Potenzial der Suchtechniken Lucene und Solr

Für die Apache-Suchtechniken Lucene und Solr bietet Lucid Imaginagion Dienstleistungen an. Auch stellt die Firma Entwickler ab. heise Developer im Gespräch mit Marc Krellenstein, dem Technikchef und Gründer des Unternehmens.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 7 Min.
Von
  • Bernd Fondermann
Inhaltsverzeichnis

Marc Krellenstein, Mitgründer und Technikchef von Lucid Imaginations

(Bild: Lucid Imaginations)

Die US-amerikanische Firma Lucid Imagination kennt sicherlich nicht jeder. Vertrauter dürften da schon die Apache-Suchtechniken Lucene und Solr sein, für die das Unternehmen Dienstleistungen anbietet und Entwickler abstellt. Für heise Developer sprach der Lucene-Experte Bernd Fondermann mit dem Technikchef von Lucid Imagination, Marc Krellenstein.

Auf die Einstiegsfrage, wann Google von seiner eigenen streng gehüteten Technik auf die Open-Source Variante Apache Lucene umsteigt, weiß Marc Krellenstein, mit über 20 Jahren Erfahrung fast ein Veteran in Sachen Freitextsuche, keine Antwort. "Eigentlich hat Lucene alles, was Google benötigt. Im Vergleich zu rein kommerziellen Angeboten ist es von den Funktionen her mindestens genauso gut oder besser – und es ist Open Source. Sicherlich hat die Konkurrenz mehr Entwicklungsressourcen und kann deswegen ebenfalls mit einer Fülle von Funktionen auftrumpfen."

Krellensteins Firma Lucid Imaginations bietet kommerzielle Dienstleistungen rund um die beiden verschwisterten Apache-Projekte Solr und Lucene an. Lucene ist eine Java-Bibliothek zum Indizieren und Durchsuchen von Volltext. Sie bietet eine Java-API, um Volltext zu analysieren und in einer eigenen optimierten Datenstruktur, einem sogenannten "Inverted Index", persistent abzulegen und schnell zu durchsuchen.

Solr beschreibt Krellenstein als "Lucene über HTTP", also als Plattform, die – basierend auf Lucene – Eigenschaften wie Caching, ein Index-Schema sowie Replikation hinzufügt und innerhalb eines Webservers bereitstellt. Sie ergänze die Infrastruktur, die man für Lucene in aller Regel früher oder später benötige. Als eine zentrale zusätzliche Solr-Funktion sieht Krellenstein das Faceting. Es biete dem Suchenden eine Auswahl von Kategorien für das Eingrenzen der Freitextsuche. Ist der unspezifische Suchbegriff etwa "Restaurant", wären Facetten zur sinnvollen weiteren Eingrenzung typischerweise die Geographie (Städte, Stadtteile) oder Preiskategorien.

"Nach unserer Erfahrung greifen die meisten Anwender heute zuerst nach Solr. Andere, die früher mit Lucene gestartet sind, wünschen sich, es hätte Solr damals schon gegeben. Es gibt aber auch Gründe, die nur für einen Einsatz von Lucene sprechen: Wenn man eine Suche in ein bestehendes Produkt einbetten will oder aus anderen Gründen keinen Server haben möchte. Zudem kann Lucene in einem Mobiltelefon laufen."

Auf die Frage, ob die Nutzung von Lucene das Schreiben eines Java-Programms voraussetze, entgegnet der Lucene-Spezialist: "Lucenes Flaggschiff-Implementierung ist zwar in Java, aber es gibt Portierungen nach C++, Python, Perl und in einige andere Sprachen, die in der Regel alle der Java-Ausgabe ein bisschen hinterherhinken. MySpace und die Entwickler-Community StackOverflow benutzen zum Beispiel Lucene.Net, das auf dem .NET-Framework läuft. Dieser spezielle Port wird manuell direkt aus dem Java-Code übersetzt." Lucene.Net ist zuletzt aus dem Hauptprojekt in den Apache Incubator gewandert, um beim Namen Lucene.Net bleiben und das Projekt unter Apache weiterleben lassen zu können. Dort hofft man auf neue Entwickler, die die .NET-Portierung begleiten.

In den letzten zwei Jahren hat sich rund um Solr und Lucene viel getan. "Das Indizieren, also das Überführen von Text in die interne Datenstruktur, wurde um den Faktor 10 beschleunigt, das ist wirklich nicht übertrieben", versichert Krellenstein. "Auch auf der Abfrageseite hat sich etwas getan, aber das hat seine Gründe eher darin, dass die Java-Laufzeitumgebung effektiver geworden ist. Nach unseren Benchmarks ist Lucene schneller als Wettbewerber wie Microsofts FAST, was den Durchsatz und die durchschnittliche Suchanfrage angeht. Lucene unterstützt mittlerweile das Near-Realtime Indexing, bei dem neue Daten unmittelbar nach dem Hinzufügen durchsuchbar sind, also sich ein Neuladen des Index vermeiden lässt. Twitter nimmt 8000 neue Tweets pro Sekunde in seinen Lucene-Index auf und macht sie nahezu in Echtzeit durchsuchbar."

Eine nennenswerte Solr-Neuerung sei Solr Cloud, womit sich eine Suche verteilt über mehrere Server ausführen lasse, wovon große Installationen profitieren würden. Es befindet sich noch in Entwicklung und hat noch keinen Einzug in ein offizielles Release gefunden. Reines Clustering von Solr-Instanzen gibt es schon länger.

In den APIs von Solr und Lucene hat es Bewegung gegeben. "In beiden Umgebungen wurde einiges refaktoriert, vor allem im Bereich Textanalyse." An dieser entscheidenden Stelle des Indizierungsprozesses wird ein Text in seine Bestandteile, die sogenannten Terme, zerlegt, und es wird entschieden, welche Terme in den Index einfließen und wie sie das Suchergebnis beeinflussen.

Außerdem wurden die bisher getrennten Entwicklergemeinschaften von Solr und Lucene im letzten Jahr vereinigt. Früher gab es zwischen beiden Gruppen Konflikte darüber, wie und wo Funktionen implementiert werden sollten. Jetzt sind alle zur Zusammenarbeit gezwungen, da es keine getrennten Releases von Lucene und Solr mehr gibt. "Das kostet viel Zeit und Anstrengung, aber es funktioniert", so Krellenstein.

Lucid Imagination ist laut dem Mitinhaber die größte Firma im Lucene-Umfeld. Sie beschäftigt rund 40 Mitarbeiter, davon die Hälfte Entwickler, und ist Arbeitgeber von insgesamt acht Committern im Dunstkreis von Lucene. Drei weitere Lucene-Committer sitzen im Aufsichtsrat von Lucid Imagination. Sie verfolgt ein ähnliches Geschäftsmodell, wie es Anbieter im Bereich Linux (etwa Red Hat) tun.

Wie der CTO berichtet, werde das derzeit von Lucid Imagination angebotene Schulungsprogramm in Bälde durch ein Zertifizierungsprogramm namens "Center of Excellence" abgelöst. Das steht dann auch im deutschsprachigen Raum auf Deutsch zur Verfügung, und zwar über die SHI GmbH.

Zusätzlich bietet Krellensteins Firma eine eigene Distribution an, die Solr wesentlich erweitert, sowohl um noch nicht veröffentlichte Funktionen wie Solr Cloud als auch um eigene Komponenten wie einen SharePoint-Konnektor. Dieses "LucidWorks Enterprise" genannte Produkt bringt Funktionen wie Sicherheit, Alarmierungsfunktionen und das SourceForge-Tool Luke zur detaillierten Analyse von Indizes mit sich, die im professionellen Einsatz auf Interesse stoßen können.

Nach der Zukunft von Lucene gefragt, antwortet Krellenstein: "Wir sind sehr interessiert an Natural Language Processing (NLP). Das war einer der Gründe, warum ich Lucid mitgegründet habe. Ich habe im Laufe der Jahre drei Search-Engines geschrieben, und ich möchte nicht mehr eine weitere schreiben. Nun kann ich an Sachen arbeiten, die mich wirklich interessieren, wie eine ausgeklügeltere Relevanz-Berechnung, NLP und Text-Mining. Lucene und Solr sind für uns die Startpunkte. Wir stellen als Teil von LucidWorks ein Klick Analyse-Tool zur Verfügung, mit dem oft angeklickte Dokumente höher in den Suchergebnissen auftauchen. Über die Zeit würden wir gerne erreichen, dass einige dieser Dinge selbstverständliche Teile von Suche werden, im selben Maße wie Rechtschreibprüfung seit einiger Zeit ein Muss bei der Suche ist."

Vielleicht wird dann ja auch Google auf Apache Lucene umschwenken ...

Bernd Fondermann
arbeitet als freier Softwarearchitekt und Berater mit innovativen Techniken wie Apache Lucene und Apache Hadoop. Er ist außerdem Member der Apache Software Foundation und tritt als Autor und Sprecher auf Konferenzen in Erscheinung.
(ane)