# Unterstützte Abfragen

`Zend_Search_Lucene` und Java Lucene unterstützen eine mächtige Abfragesprache. Sie erlaubt das Suchen nach individuellen Ausdrücken, Phrasen, Bereichen von Ausdrücken; verwendung von Wildcards und Undeutliche (Fuzzy) Suchen; Kombination von Abfragen durch Verwendung boolscher Operatoren; und so weiter.

Eine detailierte Beschreibung der Abfragesprache kann in der Dokumentation der Komponente Zend_Search_Lucene gefunden werden.

Nachfolgend sind einige Beispiel von üblichen Abfragetypen und Strategien.

## Abfragen nach einem einfachen Wort

    hello

Sucht nach dem Wort "hello" durch alle Dokumentfelder.

## Standardmäßige Suchfelder

Wichtige Notiz! Java Lucene sucht standardmäßig nur nach den "contents" Feldern, aber `Zend_Search_Lucene` sucht durch alle Felder. Dieses Verhalten kann geändert werden indem die Methode `Zend_Search_Lucene::setDefaultSearchField($fieldName)` verwendet wird.

## Abfrage nach mehreren Worten

    hello dolly

Sucht nach zwei Worten. Beide Worte sind optional; zumindest eines von Ihnen muss im Ergebnis vorhanden sein.

## Worte in einer Abfrage erzwingen

    +hello dolly

Sucht nach zwei Worten; "hello" wird benötigt, "dolly" ist optional.

## Wörter in abgefragten Dokumenten verhindern

    +hello -dolly

Sucht nach zwei Worten; "hello" wird benötigt, "dolly" ist verboten. Mit anderen Worten, wenn das Dokument auf "hello" passt aber das Wort "dolly" enthält wird es nicht im gefundenen Set zurückgegeben.

## Abfrage nach Phrasen

    "hello dolly"

Suche nach der Phrase "hello dolly"; ein Dokument entspricht nur wenn der exakte String vorhanden ist.

## Abfrage nach spezifischen Feldern

    title:"The Right Way" AND text:go

Sucht die Phrase "The Right Way" im title Feld und das Wort "go" im text Feld.

## Abfrage nach speziellen Feldern sowie im kompletten Dokument

    title:"The Right Way" AND  go

Sucht die Phrase "The Right Way" im Feld title und das Word "go" welches in irgendeinem Feld des Dokuments vorkommt.

## Abfrage nach speziellen Feldern sowie im kompletten Dokument (alternativ)

    title:Do it right

Sucht nach dem Wort "Do" im Feld title und die Wörter "it" und "right" über alle Felder; jeder einzelne der entspricht führt zu einem passenden Dokument.

## Abfrage mit der Wildcard "?"

    te?t

Sucht nach Worten die dem Pattern "te?t" entsprechen, wobei "?" jedes einzelne Zeichen ist.

## Abfrage mit dem Wildcard "*"

    test*

Sucht nach Worten welche dem Pattern "test*" entsprechen wobei "*" jede Sequenz von null oder mehr Zeichen entspricht.

## Abfrage nach einem inklusiven Bereich von Ausdrücken

    mod_date:[20020101 TO 20030101]

Sucht nach einem Bereich von Ausdrücken (inklusive).

## Abfrage nach einem exklusiven Bereich von Ausdrücken

    title:{Aida to Carmen}

Sucht nach einem Bereich von Ausdrücken (exklusive).

## Undeutliche Suchen

    roam~

Sucht undeutlich nach dem Word "roam".

## Boolsche Suchen

    (framework OR library) AND php

Boolsche Abfrage.

Alle unterstützten Abfragen können durch `Zend_Search_Lucene`'s Abfrage Erstellungs API erstellt werden. Weiters können Parsen von Abfrage und Abfrage Erstellung kombiniert werden:

## Kombinieren von geparsted und erstellten Abfragen

    $userQuery = Zend_Search_Lucene_Search_QueryParser::parse($queryStr);

    $query = new Zend_Search_Lucene_Search_Query_Boolean();
    $query->addSubquery($userQuery, true  /* required */);
    $query->addSubquery($constructedQuery, true  /* required */);