Webgate Anywhere 3.3 - Abfragesprachen-Referenz
lucene

8. lucene

Allgemein


Auf Basis der Open Source Bibliothek „Lucene“ der Apache Software Foundation existiert seit WGA 3.2 eine für alle Content-Stores einheitliche Möglichkeit zur Volltextindizierung der Inhalte. Content-Stores können regelbasiert indiziert und über eine einheitliche Abfragesprache durchsucht werden. Dabei spielt es keine Rolle, welche Content-Store-Typen zum Einsatz kommen. Datenbankübergreifende Suchanfragen sind  selbst in einer Mischumgebung aus Domino-Datenbanken und relationalen Datenbanksystemen möglich.

Bitte beachten sie, dass die Lucene-Volltextindizierung sehr flexibel konfiguriert werden kann. Alle auf dieser Seite aufgeführten Beispiele und Ergebnisse gehen von der Standard-Konfiguration aus. Sollte der Lucene-Volltextindex auf ihrem System anders konfiguriert sein, verhalten sich die hier vorgestellten Abfragen eventuell nicht wie beschrieben. Nähere Informationen zur Konfiguration des Lucene-Volltextindexes entnehmen sie bitte dem Administrationshandbuch.

Syntax

Im folgenden wird die am häufigsten verwendete Abfragesyntax für Lucene näher erläutert. Eine weiterführenden Dokumentation aller Abfragemöglichkeiten erhalten sie in der Lucene-Dokumentation.

Eine Abfrage besteht aus mehreren Suchklauseln. Als Suchklausel kann sowohl ein einfacher Suchausdruck als auch eine Kombination aus Feldname und Suchausdruck verwendet werden. Eine Abfrage der Form

<tml:query type="lucene">
    Content Management
</tml:query>

führt auf der aktuellen Datenbank eine Volltextsuche nach Dokumenten durch, die die Begriffe "Content" und "Management" enthalten. Bei dieser Suche werden alle Felder der Contentdokumente, sowie die Meta-Felder TITLE und DESCRIPTION berücksichtigt.
Um eine Suche auf ein bestimmtes Feld  einzuschränken, kann in einer Suchklausel auch ein Feldname verwendet werden. Feldname und Suchausdruck werden mit hierbei mit ":" getrennt.

<feldname>:<Suchausdruck>

Die Feldnamen entsprechen den Feldern der Content-Dokumente und werden immer klein geschrieben.
Kapitelverzeichnis einblenden

8.1 Operatoren

Suchklauseln können mit verschiedenen Opertatoren verknüpft werden. Je nach Operator steht dieser direkt vor einer Suchklausel oder zwischen zwei Suchklauseln.

<Operator><feldname>:<Suchbegriff>

oder

<feldname>:<Suchbegriff> <Operator> <feldname>:<Suchbegriff>

Folgende Operatoren sind verfügbar:

Operator Beschreibung Position
AND, && Der Operator AND verkn�pft zwei Suchklauseln mit UND. Es werden alle Dokumente gefunden, die beide Suchklauseln enthalten. Statt AND kann auch die Zeichenfolge && verwendet werden. Der Operator AND ist der Standardoperator von WGA, d.h. mehrere Suchklauseln ohne Operator werden automatisch mit UND verkn�pft. zwischen zwei Suchklauseln
OR, || Der Operator OR verkn�pft zwei Suchklauseln mit ODER. Es werden alle Dokumente gefunden, die eine der beiden Suchklauseln enthalten. Statt OR kann auch die Zeichenfolge || verwendet werden. zwischen zwei Suchklauseln
+ Der Operator + bestimmt, dass alle Ergebnisse die entsprechende Suchklausel enthalten m�ssen. direkt vor einer Suchklausel
NOT, -, ! Der Operator NOT bestimmt, dass alle Ergebnisse die entsprechende Suchklausel nicht enthalten d�rfen. Anstatt NOT k�nnen auch die Zeichen - oder ! verwendet werden. Der Operator NOT kann nicht alleine verwendet werden. Ein Abfrage muss immer mindestens eine positiv formulierte Suchklauseln enthalten. Die Abfrage NOT "albert einstein" liefert keine Ergebnisse. NOT vor einer Suchklausel mit Leerzeichen getrennt, - oder ! direkt vor einer Suchklausel ohne Leerzeichen

8.2 Fortgeschrittene Syntax

Wildcards


Ein Suchausdruck kann zwei Arten von Wildcards enthalten. 

Ein "?" ersetzt genau ein Zeichen.
Ein "*" ersetzt mehrere Zeichen innerhalb des Ausdrucks.

Wildcards dürfen nicht als erstes Zeichen eines Ausdrucks verwendet werden.

Suchbegriffe mit Leerzeichen

Bei der Suche nach Begriffen, die Leerzeichen enthalten ist folgendes zu beachten:
Der angegebene Feldname bezieht sich immer nur auf den direkt darauf folgenden Suchausdruck. Die Abfrage:

body:"Content Management mit WGA"

sucht im Feld body nach dem Begriff "Content" und sucht in alle Feldern der Content-Dokumente und in den Meta-Feldern TITLE und DESCRIPTION nach den Begriffen "Management", "mit" und "WGA". Soll nach allen Begriffen ausschließlich im Feld body gesucht werden, muss die Abfrage wie folgt formuliert werden:

body:Content body:Management body:mit body:WGA

Exakte Suche

Um eine exakte Suche nach einer Zeichenfolge durchzuführen, muss die Zeichenfolge in Anführungszeichen gesetzt werden. Z.B.:

body:"Content Management mit WGA"

Meta-Felder

Auch Meta-Felder eines Contentdokumentes werden von WGA indiziert und stehen zur Suche zur Verfügung. Meta-Felder werden in Großbuchstaben angegeben. Folgende Abfrage sucht nach allen Dokumenten, die im Titel den Begriff "Management" enthalten:

TITLE:Management

Eine Liste mit allen indizierten Metafeldern finden sie am Ende dieses Dokumentes.

Suche nach Datumswerten und Zahlen

Die Lucenesuche basiert auf einem Volltextindex, indem alle Inhalte als String indiziert werden. Es wird also kein Unterschied zwischen Zahlen, Datumswerten und Texten gemacht. Dieser Umstand muss bei der Suche nach Datumswerten und Zahlen berücksichtig werden.

Datumswerte

Datumswerte werden von Lucene als Text im Format "yyyyMMddHHmmss" indiziert. Enthält ein Datum keine Uhrzeit, so sind die entsprechenden Felder 0. Der 01.09.2005 ist also im Index in der Form "20050901000000" gespeichert.
Eine Abfrage, die alle Dokumente liefert, die am 01.09.2005 geändert worden sind, wird wie folgt formuliert:

MODIFIED:20050901*

Zahlen

Zahlen werden unverändert indiziert. Die Abfrage

VERSION:5

liefert alle Dokumente mit der Versionsnummer 5.

Suchen in bestimmten Bereichen (von, bis)

Die Abfrage eines Feldes auf einen bestimmten Bereich (von, bis) ist über folgende Syntax möglich:

<feldname>:<B>[<von> TO <bis>]</B> oder
<feldname>:{<von> TO <bis>}

Die Suche mit [ ] ist inklusive der Werte <von> und <bis>. Es werden also auch Dokumente gefunden, die genau den Wert <von> oder den Wert <bis> im entsprechenden Feld enthalten. Die Suche mit { } ist exclusive der Werte <von> und <bis>. Das Suchergebnis enthält nur Dokumente zwischen den Werten <von> und <bis>.

Eine Abfrage, die alle Dokumente liefert, die zwischen dem 15.08.2005 und dem 01.09.2005 geändert worden sind, wird wie folgt formuliert:

MODIFIED:[20050815000000 TO 20050901235959]

Suchen nach größer oder kleiner als ...

Lucene unterstützt derzeit keine Abfragen auf größer oder kleiner. Diese Art der Abfragen können aber in eine Bereichssuche umgeschrieben werden. Möchten sie z.B. alle Dokumente finden, die nach dem 01.09.2005 geändert worden sind, so müssen sie die Abfrage als Bereichssuche mit einem fiktiven Enddatum definieren:

MODIFIED:{20050901000000 TO 20700101000000}

Alle Dokumente die vor dem 15.09.2005 erstellt wurden liefert folgende Abfrage mit dem fiktiven Anfangsdatum 01.01.1900:

MODIFIED:{19000101000000 TO 20050915000000}

Datenbankübergreifende Suchen


Mit Lucene ist es möglich, datenbankübergreifend Abfragen selbst bei unterschiedlichen Datenbanktypen (SQL, Domino) durchzuführen. Die Datenbank(en) auf die sich die Abfrage bezieht wird im Query-Tag über die Option "db" angegeben. Hier sind folgende Werte möglich:

Option "db" Beschreibung
Datenbankschlüssel der Datenbank in welcher gesucht werden soll
* Es wird in allen Datenbanken der Domäne gesucht welche einen Lucene-Volltextindex besitzen.
** Es wird in allen Datenbanken gesucht welche in WGA eingebunden sind und einen Lucene-Volltextindex besitzen.

8.3 Indizierte Metadaten-Felder

Folgende Metafelder werden in der angegebenen Indizierungsart indiziert:

Metadaten-Feld Beschreibung Indizierungsart
AUTOR Autor des Inhaltes analyzed
BASEIMAGE Grafik für Navigatoren keyword
CREATED Erstellungsdatum date
DBKEY Datenbankschlüssel keyword
DESCRIPTION Kurzbeschreibung des Inhaltes fulltext
DOCNAME, NAME, UNIQUENAME Eindeutiger Name keyword
EMAIL E-Mail-Adresse des Autors analyzed
HIDDENINNAV Ist "true", wen das Dokument in Navigatoren angezeigt werden soll, anonsten "false". keyword
HIDDENINSEARCH Ist "true", wen das Dokument in Suchergebnissen angezeigt werden soll, anonsten "false". keyword
HIDDENINSITEMAP Ist "true", wen das Dokument in Sitemaps angezeigt werden soll, anonsten "false". keyword
HTMLHEAD Zusätzliche HTML-Headinformationen keyword
KEY Content-Key keyword
KEYWORDS Schlüsselwörter zur Verwendung in Suchmaschinen keyword
LANGUAGE Sprachcode, z.B. "de" keyword
LASTCLIENT WGA-Client über welchen das Dokument zuletzt gespeichert wurde keyword
LASTMODIFIED, MODIFIED Datum der letzten Modifikation date
LINKTARGET Name des HTML-Frames, in welchem das aktuelle Dokument geöffnet werden soll wenn es per Link ausgewählt wird keyword
MOUSEOVERIMAGE Grafik für Navigatoren zur Anzeige bei Mauszeiger-Berührung keyword
READERS Berechtigungsfeld: Leser mit Zugriffsberechtigung auf das Inhaltsdokument analyzed
REFRESH "true", wenn die Seite nach einer Zeitperiode vom Browser neu geladen werden soll, ansonsten "false". keyword
REFRESHTIME Zeitperiode in Sekunden, nach welcher der Browser die Seite neu laden soll. keyword
REFRESHURL URL, welche anstelle der aktuellen Seite beim Refresh geladen werden soll keyword
SELECTEDIMAGE Grafik für Navigatoren bei aktuell angezeigtem Inhaltsdokument keyword
STATUS Workflow-Status des Inhaltsdokumentes:
"w" - Arbeitskopie
"g" - Zur Genehmigung
"p" - Freigegeben
"a" - Archiviert
keyword
STRUCTENTRY, STRUCTKEY Schlüssel des zugehörigen Struktureintrags keyword
TITLE Titel fulltext
TRACKINGKEYS Tracking-Keys der Inhaltsseite keywords
USENAVIMAGE "true", wenn für diesen Inhalt Grafiken im Navigator verwendet werden sollen, ansonsten "false" keyword
VALIDFROM Datum, ab welchem das Dokument angezeigt wird date
VALIDTO Datum, bis zu welchem das Dokument angezeigt wird date
VERSION Versionsnummer keyword
VIRTUALLINK Informationen zum Ziel des virtuellen Dokumentes. Inhalt hängt vom Typ des virtuellen Links ab:
"int" - Content-Key des Ziel-Dokumentes
"exturl" - URL zu externer Webseite
"file" - Folgende Syntax: <documentkey>/<filename>, Wobei <documentkey> der Name eines Dateicontainers oder der Schlüssel eines Inhaltsdokumentes sein kann
"intfile" - Name einer Datei am aktuellen Inhaltsdokument
keyword
VIRTUALLINKTYPE Typ des virtuellen Dokumentes:
"int" - Ziel ist ein Inhaltsdokument der aktuellen Datenbank
"exturl" - Ziel ist eine beliebige URL
"file" - Ziel ist ein Dateianhang an einem Datei-Container oder Inhaltsdokument in der aktuellen Datenbank
"intfile" - Ziel ist ein Dateianhang am aktuellen Inhaltsdokument
keyword
VISIBLE Generelles Sichtbarkeits-Flag. "true", wenn das Dokument sichtbar ist, "false" wenn nicht. keyword
WFHISTORY Workflow-Historie analyzed


<< table WebTML Tag-Referenz >>