Liferay Elasticsearch baut auf Lucene auf
Es handelt sich dabei um eine Volltextsuche mit allem darin enthaltenen Komfort. Elasticsearch kann als Plugin für die Open Source Portalsoftware Liferay in dessen Marketplace heruntergeladen werden und ist ab der Liferay Version 7 integriert.
Elasticsearch ist auf modernen technischen Prinzipien aufgebaut. Der Suchserver trumpft mit einem einfachem Clustering auf und ermöglicht dadurch die Umsetzung von Hochverfügbarkeit und Lastverteilung. Er kann sehr große Indizes anlegen und eine Vielzahl an Abfragen gleichzeitig bearbeiten. Der Index kann auf mehrere Instanzen verteilt werden.
Vorteile und Funktionen von Liferay Elasticsearch:
Um Datenverlust im Falle des Ausfalls eines Knotens zu verhindern, lassen sich von jedem Primary Shard mehrere als Replica Shards bezeichnete Kopien auf anderen Clusterknoten anlegen.
Für wen eignet sich Liferay Elasticsearch?
Wer schon in der Vergangenheit hohe Ansprüche an die Suche stellte, hat vielleicht schon Solr als Open Source Suchtechnologie integriert. In diesem Fall ist es ein Umstieg nicht empfehlenswert, vor allem wenn man mit den Ergebnissen von Solr zufrieden ist.
Für Unternehmen, die bisher noch keine Zeit und Energie in eine andere Suchtechnologie gesteckt haben, ist Elasticsearch eine moderne Alternative.
Was ist Lucene?
Die Liferay Search Engine Elastic Search basiert auf „Jakarta Lucene“ – einer Open Source Text-Search-Engine in Java. Sie ist besonders leistungsstark, voll funktionsfähig und für fast jede mögliche Anwendung verwendbar, die eine Volltextsuche erfordert. Nicht umsonst wird Lucene auf Wikipedia eingesetzt. Lucene unterstützt zudem standardmäßig viele Suchoptionen.
Welche Suchmöglichkeiten und Operatoren bietet die Liferay Search Engine?
Operatoren | Beschreibung | Lucene Search Engine in Liferay |
---|---|---|
Fuzzy Suche | undeutliche Suche zu formulieren mit Tilde-Symbol („~“) Beispiel: seit~ liefert: Seite, seinen, weitere, Leiter… | Ja Markierung des Suchwortes entfällt |
Boolesche Suche | Verknüpfen von Wörtern mit UND, OR, AND | Ja |
Proximity Suche/Distanzsuche | „Guten wiedersehen“~10 Zeigt Ergebnisse, in dem die beiden Wörter Guten und wiedersehen maximal 10 Wörter voneinander entfernt liegen. | Ja |
Wildcard | Platzhalter (*) z. B. te* | Ja, aber nicht am Anfang des Wortes: z. B. *wort, *gang geht nicht z. B. Haus*, Baum* geht |
Feldsuche | Lucene unterstützt Felddaten | Ja, z. B. Suche kann über Volltext oder Seitentitel gesteuert werden. |
Bereichssuche | – | Nein, standardmäßig nicht. Dazu müssen die Felder definiert werden. |
Verstärkungsfaktor | Um einen Verstärkungsfaktor zuzuordnen, wird das „^“-Symbol verwendet Tag^4 du = Tag ist 4 x stärker gewichtet | Ja |
Weitere Funktionen | ||
Indexierung | Mit Indexierungsverfahren wird durch die Ermittlung von Worthäufigkeiten und Wortrelevanz eine Auswahl getroffen und somit Wörter in den Index aufgenommen. Anhand des erstellten Index kann dann die Volltextsuche, wie später beschrieben, effizient durchgeführt werden. | Ja Bei der Installation von Liferay erstellt die Lucene Engine automatisch aus den Inhalten in der Datenbank einen Index. Neue Dokumente werden sofort indiziert. Änderungen werden auch sofort berücksichtigt |
Tokenisierung | Zerlegen einen oder mehrere Texte in kleine Einheiten, so genannte Tokens. Diese werden anschließend gespeichert in der der Token-Dokument-Beziehung. | Ja |
Anfrageanalyse oder effiziente Suche | Analyse von Text-, PDF-, Word-, Excel- und OpenOffice-Dokumenten | Ja Für jedes Dokumentformat existiert ein „Analyzer“. Dieser durchsucht und indexiert in optimierter Weise verschiedene Dokumentformate. |
Rekursives Crawling | Suche durch mehrere Verzeichnisse und externe Laufwerke. | Nein, dazu muss die Lucene Engine erweitert werden. |
Paging | Blättern durch Ergebnislisten | Ja |
TagCloud | Eine Schlagwortwolke – ist eine Methode zur Informationsvisualisierung, bei der eine Liste aus Schlagworten, oft alphabetisch sortiert, flächig angezeigt wird, wobei Wörter, die häufiger gesucht werden größer angezeigt werden als weniger häufig gesuchte. | Ja |
Semantische Suche | Beispiel: Eine Suchanfrage nach ‚Baum‘ an eine bedeutungserschließende Suchmaschine verwendet zur Suche auch Begriffe, die im Zusammenhang mit ‚Baum‘ genannt werden, auch wenn sie in der Anfrage selbst nicht genannt werden. Es werden als Ergebnis auch die Wörter (z. B. Ahorn, Eiche, Linde) beinhalten angezeigt. | Nein |
Gruppierungen von Elementen | Elemente können gruppiert werden. Dazu werden Klammern mit den üblichen Regeln benutzt: „(hallo OR du) AND ich“ ( sucht alle Dokumente, in denen „ich“ vorkommt, sowie „hallo“ oder „du“. | Ja |
Verhalten von Liferay und Lucene
- Liferay erkennt, dass eine neue Ressource in die Suche aufgenommen werden soll.
- Liferay schaut, um welche Ressourcenart es sich handelt und extrahiert such relevante Daten – bei XmlContent z. B. Titel, Body, Dateipfad des Anhangs etc., bei Bildern z. B. Bildname, Bildpfad, etc. als Text.
- Liferay ruft Lucene auf und übergibt die aus der neuen Ressource extrahierten such relevanten Daten; dabei kann Liferay noch angeben, ob diese eine besondere Gewichtung – „Boost“ – haben sollen. Außerdem wird Text, welcher aus wenigen Einzelworten besteht, höher gewichtet, so z. B. beim Titel, der oft nur aus einem Wort besteht im Gegensatz zum Content, der aus tausenden Wörtern bestehen kann.
- Lucene untersucht den von Liferay übergebenen Text und schreibt Informationen über die Häufigkeit der im Text enthaltenen Worte sowie deren Relevanz in den Index.
Indexierung
Der Begriff Indexierung bezieht sich zunächst auf die Aufnahme von Informationen in einen Index. Dabei werden die aufgenommenen Inhalte nach bestimmten Kriterien strukturiert, beispielsweise durch die Zuordnung von Schlagwörtern. Gemeinsam bilden sie den Index, der als Grundlage dient, um Inhalte schneller aufzufinden.
Die Verwendung von Indexierungen ist äußerst effektiv, um die Geschwindigkeit der Suche in einem Unternehmen erheblich zu erhöhen. Im Gegensatz zur einfachen Dokumentensuche wird bei der Indexsuche ein Dokument während des Hochladens durch einen Crawler analysiert, und die Keyword-Dichte im Text wird mithilfe von Suchfiltern ermittelt. Diese Informationen werden anschließend in einem hochleistungsfähigen Datenbankserver oder einem Dateisystem gespeichert. Ab diesem Zeitpunkt erfolgt die Suche nicht mehr im eigentlichen Dokument, sondern im Datenbankserver, was zu einer deutlich schnelleren und leistungsfähigeren Suche führt. Dadurch können Nutzer innerhalb von Sekunden auf alle relevanten Informationen zugreifen.
In Lucene können große bzw. viele Dokumente im zweistelligen Millionen-Bereich indexiert werden.
Abbildung: Allgemeiner Aufbau einer Volltextindexierung
Die eigentliche Suche in Liferay
Darstellung der Suchergebnisse in Liferay
Sie wünsche Beratung zum Thema Enterprise-Search?
comundus unterstützt Sie bei der Implementierung optimalen Suchfunktion in Ihrem Unternehmen. Mit unserer langjährigen Erfahrung in der Erstellung und Positionierung von Portallösungen, sind wir Ihr erster Ansprechpartner für den Weg in die Digitalisierung - von der Planung bis zur technischen Umsetzung.