Lucene-Hilfe

Ausdrücke:

Eine Abfrage wird in Ausdrücke und Operatoren zerteilt. Es gibt drei Arten von Ausdrücken: Einzelne Ausdrücke, Phrasen und Unterabfragen.

Ein einzelner Ausdruck ist ein einzelnes Wort wie "Test" oder "Hallo".

Eine Phrase ist eine Gruppe von Wörtern die von doppelten Hochkommata umgeben sind wie "Hallo Dolly".

Eine Unterabfrage ist eine Abfrage die von Klammern umgeben ist wie "(Hallo Dolly)".

Mehrere Ausdrücke können mithilfe eines boolschen Operators miteinander kombiniert werden um komplexere Abfragen zu formen (siehe anbei).

Wildcards:

Lucene unterstützt Einzelzeichen- und Mehrfachzeichen-Suchen mit Wildcards in einzelnen Ausdrücken (aber nicht innerhalb von Phrasenabfragen).

Um zum Beispiel nach "Text" oder "Test" zu suchen kann die folgende Suche verwendet werden:

Te?t

Um zum Beispiel nach Test, Tests oder Tester zu suchen, kann die folgende Suche verwendet werden:

Test*

Es können "?", "*" oder beide Zeichen an jeder Stelle des Ausdrucks verwendet werden:

*schrei?t*

Wildcard Präfixe benötigen einen nicht-Wildcard Präfix. Die standardmäßige Länge des Präfixes ist 3. Die Ausdrücke "*", "te?t", "*wr?t*" werden also einen Fehler werfen.

Boolsche Operatoren:

Boolsche Operatoren erlauben es Ausdrücke durch logische Operatoren zu kombinieren. Lucene unterstützt AND, "+", OR, NOT und "-" als boolsche Operatoren.

AND, OR, und NOT Operatoren und "+", "-" definieren zwei unterschiedliche Stile um boolsche Abfragen zu erstellen. Lucene erlaubt es nicht diese zwei Stile zu mischen.

Wenn der AND/OR/NOT Stil verwendet wird dann muss der AND oder OR Operator zwischen allen Abfrageausdrücken vorhanden sein. Jedem Ausdruck kann auch ein NOT Operator vorangestellt werden. Der AND Operator hat eine höhere Präzedenz als der OR Operator.

"Volvo" AND "Werkstatt"
"Volvo" OR "Werkstatt"
"Volvo" AND NOT "Werkstatt"

&&, ||, und ! können statt den AND, OR und NOT Notation verwendet werden.

Der "+" oder benötigende Operator erfordert, dass der Ausdruck nach dem "+" Symbol im passenden Dokument vorhanden ist.

Um nach Dokumenten zu Suchen die "Volvo" enthalten müssen und "Werkstatt" enthalten können, kann die folgende Abfrage verwendet werden:

+Volvo Werkstatt

Der "-" oder ausschließende Operator schließt Dokumente aus die dem Ausdruck nach dem "-" Symbol entsprechen.

Um nach Dokumenten zu Suchen die "Volvo" enthalten aber "Werkstatt" nicht, kann die folgende Abfrage verwendet werden:

"Volvo" -"Werkstatt"

Fuzzy-Suche (Levenshtein-Distanz):

Um eine Fuzzy Suche durchzuführen, muss das Tilde Symbol "~" am Ende eines einzelnen Wortbegriffs verwendet werden. Um zum Beispiel nach einem Begriff zu suchen, der in der Aussprache ähnlich zu "Raum" ist, kann die folgende Fuzzy Suche verwendet werden:

Roam~

Diese Suche wird Begriffe wie "Baum" und "Saum" finden. Zusätzliche (optionale) Parameter können die benötigte Ähnlichkeit spezifizieren. Der Wert muss zwischen 0 und 1 sein. Mit einem Wert näher bei 1 werden nur Begriffe mit einer höheren Warscheinlichkeit gefunden. Zum Beispiel:

Roam~0.8

Escapen von Zeichen:

Lucene unterstützt das Escapen von speziellen Zeichen, die in der Abfragesyntax verwendet werden. Die aktuelle Liste der speziellen Zeichen ist:

+ - && || ! ( ) { } [ ] ^ " ~ * ? : \

+ und - in einem einzelnen Ausdruck werden automatisch als normale Zeichen behandelt.

Für andere Instanzen von solchen Zeichen kann das \ vor jedem speziellen Zeichen verwendet werden das escaped werden soll. Um zum Beispiel nach (1+1):2 zu suchen kann die folgende Abfrage verwendet werden:

\(1\+1\)\:2