Unterstützte AbfragenZend_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
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
Sucht nach zwei Worten. Beide Worte sind optional; zumindest eines von Ihnen muss im
Ergebnis vorhanden sein.
Worte in einer Abfrage erzwingen
Sucht nach zwei Worten; "hello" wird benötigt, "dolly" ist optional.
Wörter in abgefragten Dokumenten verhindern
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
Suche nach der Phrase "hello dolly"; ein Dokument entspricht nur wenn der exakte String
vorhanden ist.
Abfrage nach spezifischen Feldern
Sucht die Phrase "The Right Way" im title Feld und das Wort "go"
im text Feld.
Abfrage nach speziellen Feldern sowie im kompletten Dokument
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)
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 "?"
Sucht nach Worten die dem Pattern "te?t" entsprechen, wobei "?" jedes einzelne Zeichen
ist.
Abfrage mit dem Wildcard "*"
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
Sucht nach einem Bereich von Ausdrücken (inklusive).
Abfrage nach einem exklusiven Bereich von Ausdrücken
Sucht nach einem Bereich von Ausdrücken (exklusive).
Undeutliche Suchen
Sucht undeutlich nach dem Word "roam".
Boolsche Suchen
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 AbfragenaddSubquery($userQuery, true /* required */);
$query->addSubquery($constructedQuery, true /* required */);
]]>