Lucene: Starke Grundlagen für effektive Suche

Lucene ist eine leistungsstarke Bibliothek für die Volltextsuche, die sich als Rückgrat einer breiten Palette von Suchwerkzeugen etabliert hat. Lucene umfasst einen umfassenden Satz skalierbarer, effizienter und plattformübergreifender Algorithmen, die in Java geschrieben sind. Es wird von der Apache Foundation verwaltet und unter der Apache License 2.0 verbreitet, was sowohl Open-Source- als auch kommerzielle Nutzung erlaubt. Daher hat es eine große Anzahl von Ablegerprojekten wie Solr und Elasticsearch sowie Produkte wie Lookeen Desktop und Enterprise Search vorangetrieben, die die von Lucene angebotenen Such-Engine-Tools einbinden und erweitern.

Die Ursprünge von Lucene

Lucene treibt Lookeen an. Entdecken Sie, was die erweiterten Suchfunktionen von Lucene für Sie leisten können!

Lucene wurde 1997 als Doug Cuttings Nebenprojekt während seiner Zeit bei der Suchmaschine Excite entwickelt. In Erwartung des Platzens der Internetblase reduzierte Cutting seine Arbeitszeit, um sich Java selbst beizubringen und mit der Arbeit an einer Reihe von Suchwerkzeugen zu beginnen. Daraus wurde die beliebte Suchmaschinenbibliothek Lucene, benannt nach dem zweiten Vornamen seiner Frau.

Die von Lucene durchgeführten Operationen lassen sich im Wesentlichen auf zwei Kernschritte vereinfachen. Erstens erstellt es Indizes des Inhalts, der durchsuchbar gemacht werden soll. Zweitens durchsucht Lucene die erstellten Indizes nach Inhalten.

Die Struktur von Indizes

Innerhalb eines Lucene-Index werden Lucene-Dokumente aufgebaut. Diese Lucene-Dokumente enthalten Felder mit zugehörigen Werten, die im Wesentlichen Schlüssel-Wert-Paare sind. Um einen Index zu erstellen, muss das jeweilige Dokument, das indiziert wird, analysiert und die Felder extrahiert werden. Da das im Index gespeicherte Lucene-Dokument unabhängig vom Dateityp ist, kann jeder Dokumenttyp, der in Felder und Werte zerlegt werden kann, durchsuchbar gemacht werden. Dieser Vorteil ist unverzichtbar und verleiht Lucene die Fähigkeit, strukturierte Datenbankobjekte sowie unstrukturierte oder semi-strukturierte Dokumente wie Word-Dokumente oder PDF-Formate zu indizieren.

Bei der Abfrage von Indizes sucht Lucene nach Übereinstimmungen zwischen den indizierten Werten und den Suchbegriffen. Die Entscheidung, wie die Extraktion von Feldern aus Dokumenten korrekt strukturiert werden soll, ist ein wichtiger Schritt bei der Einrichtung der Suche. Um sicherzustellen, dass die Suche als Antwort auf Abfragen gute Ergebnisse liefert, müssen die Felder entsprechend dem Ziel-Datentyp extrahiert werden.

Indizieren von unstrukturierten Inhalten

Bei einigen Dokumenten, insbesondere bei strukturierten Dokumenten, ist die Zuordnung von Feld- und Wertepaaren relativ einfach. Bei der Suche nach einem Autorennamen oder Kontaktdaten wie Adresse und Telefonnummer ist es typisch, dass das gewünschte Ergebnis einer vollständigen Übereinstimmung mit der Abfrage entspricht. Daher kann dieses Feld einfach mit seinem Wert indiziert werden und bei einer passenden Abfrage einen Treffer zurückgeben.

Bei generischen Inhalten ist es wahrscheinlich, dass Übereinstimmungen und Teilübereinstimmungen im Text gewünscht werden, anstatt einer strikt identischen Übereinstimmung mit dem Suchbegriff. Um dies zu erreichen, wird generischer Text von Lucene analysiert und vor der Indizierung entsprechend zerlegt. In der Analysephase werden die meisten unwichtigen Füllwörter verworfen. Der Analyzer verwendet zudem einen Stemming-Algorithmus, um jedes Wort auf seine Grundform zurückzuführen.

Speicherung von Indizes

Als Lucene entwickelt wurde, war ein wesentlicher Unterschied zu anderen Suchmaschinenbibliotheken die Art und Weise, wie es die Indexspeicherung handhabte. Die Indexspeicherung gehörte zu den Hürden, die verhinderten, dass Suchmaschinen in ihrer Größe skalieren und gleichzeitig die Geschwindigkeit beibehielten. In Lucene werden, sobald die Anzahl der Indizes drei erreicht, diese zusammengeführt. Ebenso werden diese größeren Indizes fortlaufend ebenfalls zu Dreiergruppen gruppiert und konsolidiert. Dieses System hält den Großteil des indizierten Materials durch einen progressiven Merge-Sort in größeren Sammlungen gebündelt. Da der größere Teil der Daten gruppiert und sortiert wird, bleibt die Suchzeit effizient, während gleichzeitig das Hinzufügen von Indizes „on the fly“ ermöglicht wird.

Lucene steht hinter einigen der größten Suchplattformen, darunter LinkedIn, Twitter und Wikipedia. Wie die oben gezeigte „Powered by“-Seite belegt, hat Lucene weitreichende Auswirkungen auf das Suchwesen gehabt. Die Einfachheit der Lucene-Bibliothek und ihre leichte Implementierbarkeit haben zu ihrem überwältigenden Erfolg beigetragen. Cutting merkt an, dass er den entscheidenden Punkt für die unerwartet weite Verbreitung von Lucene in seiner Entscheidung sah, es als Open Source verfügbar zu machen. Dadurch ist Lucene zu einem schnellen und robusten Suchwerkzeug gewachsen, das wettbewerbsfähig bleibt und zweifellos seinen Platz in der Geschichte der Suchentwicklung halten wird.

Sehen Sie sich an, wie Lucene-Erfinder Doug Cutting über die Entstehung und Entwicklung spricht. Zur Verfügung gestellt von Twitter University.

https://www.youtube.com/embed/5444z-L2V2A

Ähnliche Beiträge