Liferay Elasticsearch

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.

Mit Liferay Elasticsearch kann an mehreren Orten nach Daten gesucht werden.

Vorteile und Funktionen von Liferay Elasticsearch:

  • Elasticsearch ist traditionell und daher auch einfach out-of-box für Entwickler schnell zu starten.
  • Elasticsearch eignet sich, wenn der Index auf mehrere Server verteilt werden soll. Elasticsearch zerteilt jeden Index in mehrere Stücke, sogenannte shards. Die shards eines Indexes können vom Anwender bei Bedarf auf mehrere Server aufgeteilt werden.
  • Komplexe Suchanfragen werden durch mehrere Instanzen parallel bearbeitet.
  • Die Shards eines Index können darüber hinaus auf unterschiedliche Knoten eines Clusters verteilt werden, um so die Last auch physisch zu verteilen.
  • Elasticsearch zielt auf den Umgang mit analytischen Abfragen
  • intern legt Elasticsearch die Dokumente in Indizes ab – dokumentenzentrierter Ansatz im Umgang mit Daten.
  • Neue Dokumente und Daten werden auch unter hoher Änderungslast schnell im Suchergebnis angezeigt.
  • Sie bietet Suchvorschläge – Autosuggest Suchfelder
  • Spellchecking/Sprachüberprüfung: Brgschh findet auch Bergschuh
  • eine komfortable Facettensuche
  • schnelle Suchergebnisse durch die Trennung der Texte in Terme
  • Volltextsuche über mehrere Felder
  • http-JSON-REST_API zum Indexieren und Auslesen von Dokumenten

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?

OperatorenBeschreibungLucene Search Engine in Liferay
Fuzzy Sucheundeutliche Suche zu formulieren mit Tilde-Symbol („~“)
Beispiel: seit~ liefert: Seite, seinen, weitere, Leiter…
Ja
Markierung des Suchwortes entfällt
Boolesche SucheVerknüpfen von Wörtern mit UND, OR, ANDJa
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
WildcardPlatzhalter (*) z. B. te*Ja, aber nicht am Anfang des Wortes:
z. B. *wort, *gang geht nicht
z. B. Haus*, Baum* geht
FeldsucheLucene unterstützt FelddatenJa, z. B. Suche kann über Volltext oder Seitentitel gesteuert werden.
BereichssucheNein, standardmäßig nicht. Dazu müssen die Felder definiert werden.
VerstärkungsfaktorUm einen Verstärkungsfaktor zuzuordnen, wird das „^“-Symbol verwendet
Tag^4 du = Tag ist 4 x stärker gewichtet
Ja
Weitere Funktionen
IndexierungMit 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
TokenisierungZerlegen 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 SucheAnalyse von Text-, PDF-, Word-, Excel- und OpenOffice-DokumentenJa
Für jedes Dokumentformat existiert ein „Analyzer“. Dieser durchsucht und indexiert in optimierter Weise verschiedene Dokumentformate.
Rekursives CrawlingSuche durch mehrere Verzeichnisse und externe Laufwerke.Nein, dazu muss die Lucene Engine erweitert werden.
Paging
Blättern durch ErgebnislistenJa
TagCloudEine 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 SucheBeispiel:
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 ElementenElemente 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

  • Benutzer gibt in Liferay einen Suchbegriff ein
  • Liferay gibt den Begriff an Lucene weiter
  • Liferay gibt den Begriff an Lucene weiterLucene bereitet den Begriff ggf. auf (Operatoren wie AND, OR, Wildcards etc.)
  • Lucene holt sich Informationen über den Begriff aus dem Index und gibt eine Liste von Treffern zurück
  • Die Liste ist dann so geordnet, dass relevante Treffer am Anfang stehen
  • Nachdem ein Index erstellt ist, kann darüber gesucht werden
  • Die Suche geschieht in Lucene mittels spezieller Anfragen (Queries)
  • Eine Anfrage in Lucene besteht aus Termen (einfachen Wörter) und Phrasen (Sequenzen von Termen), die durch logische Operatoren verbunden sind
  • Gesucht werden kann mit verschiedenen Operatoren wie Boosting, Proximity/Distanz, Fuzzy und Span Queries
  • Zusätzlich kann man die Suche auf bestimmte Felder durch Voranstellen von Feldnamen einschränken

Darstellung der Suchergebnisse in Liferay

  • Standardmäßig werden in Liferay die Suchergebnisse nach den relevantesten Treffern gelistet
  • Standardmäßig ist das Suchwort markiert oder hervorgehoben
  • Die Quelle ist ersichtlich, wenn die Suche über mehrere Websites geht
  • Standardmäßig wird die Trefferanzahl angezeigt
Illustration Volltextsuche

Liferay Volltextsuche

Was ist eine Volltextsuche und wie funktioniert sie? Eine Volltextsuche durchsucht Dokumentenbestände schnell & effektiv.

Liferay iFinder

Bei einer Enterprise Search erwartet man eine ausgereifte Suchmaschine mit hervorragenden Suchergebnissen. iFinder kann über mehrere Datenbanken hinweg suchen und ergänzt daher das Suchen & Finden in Liferay optimal.

Mitarbeiterverzeichnis und Mitarbeiterprofile in Liferay

Die Pflege von Expertenprofilen und Mitarbeiterprofilen ist vorallem für die integrierte Liferay Expertensuche hilfreich. So können sich neue Mitarbeiter schnell finden und vernetzen.

Liferay Workflows

Eine Workflow-Engine kann dazu beitragen, die Effizienz und Genauigkeit von Geschäftsprozessen zu verbessern, indem sie manuelle Schritte automatisiert und die menschliche Interaktion reduziert.

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.