Suchen und schnell finden - Liferay Suche mit Lucene Engine
Mitarbeiter arbeiten effektiv und effizient, wenn sie Informationen schnell finden. Eine komfortable Suche ist eine Schlüsselfunktion für ein erfolgreiches Wissensmanagement in Ihrem Unternehmen. Eine starke Suchmaschine mit vielen Funktionen gehört in Ihr Mitarbeiterportal. Eine leistungsstarke Lösung ist die Lucene.
Die Suche in Liferay
Die Jakarta Lucene ist eine Open Source, leistungsstarke, voll funktionsfähige Text-Such-Engine, geschrieben in Java. Sie ist eine Technologie, die für fast jede mögliche Anwendung verwendbar ist, die Volltextsuche erfordert. Lucene unterstützt standardmäßig viele Suchoptionen.
Welche Suchmöglichkeiten und Operatoren bietet die Lucene Engine in Liferay?
Operatoren |
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 |
Ja |
|
Wildcard
|
Ja, aber nicht am Anfang des Wortes: |
| 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 |
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 |
Ja |
|
Rekursives Crawling |
Nein, dazu muss die Lucene Engine erweitert werden. |
| Paging Blättern durch Ergebnislisten |
Ja |
|
TagCloud |
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 |
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 suchrelevante 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 suchrelevanten 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
Die Indexierung dient der Aufbereitung des Suchraums und wird typischerweise zu Beginn und bei Änderungen des Suchraums durchgeführt. Anhand des erstellten Index kann dann die Volltextsuche effizient durchgeführt werden. In Lucene können große bzw. viele Dokumente im zweistelligen Mio. Bereich in einem System 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.
- Lucene 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.
- Nach dem 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 Feldname: 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
