|
|
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.
Beispiel #1 Abfragen nach einem einfachen Wort
hello
Sucht nach dem Wort "hello" durch alle Dokumentfelder.
Hinweis: Standardmäßige Suchfelder
Wichtige Notiz! Java Lucene sucht standardmäßig nur nach den "contents" Feldern, aber
Zend_Search_Lucenesucht durch alle Felder. Dieses Verhalten kann geändert werden indem die Methode Zend_Search_Lucene::setDefaultSearchField($fieldName) verwendet wird.
Beispiel #2 Abfrage nach mehreren Worten
hello dolly
Sucht nach zwei Worten. Beide Worte sind optional; zumindest eines von Ihnen muss im Ergebnis vorhanden sein.
Beispiel #3 Worte in einer Abfrage erzwingen
+hello dolly
Sucht nach zwei Worten; "hello" wird benötigt, "dolly" ist optional.
Beispiel #4 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.
Beispiel #5 Abfrage nach Phrasen
"hello dolly"
Suche nach der Phrase "hello dolly"; ein Dokument entspricht nur wenn der exakte String vorhanden ist.
Beispiel #6 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.
Beispiel #7 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.
Beispiel #8 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.
Beispiel #9 Abfrage mit der Wildcard "?"
te?t
Sucht nach Worten die dem Pattern "te?t" entsprechen, wobei "?" jedes einzelne Zeichen ist.
Beispiel #10 Abfrage mit dem Wildcard "*"
test*
Sucht nach Worten welche dem Pattern "test*" entsprechen wobei "*" jede Sequenz von null oder mehr Zeichen entspricht.
Beispiel #11 Abfrage nach einem inklusiven Bereich von Ausdrücken
mod_date:[20020101 TO 20030101]
Sucht nach einem Bereich von Ausdrücken (inklusive).
Beispiel #12 Abfrage nach einem exklusiven Bereich von Ausdrücken
title:{Aida to Carmen}
Sucht nach einem Bereich von Ausdrücken (exklusive).
Beispiel #13 Undeutliche Suchen
roam~
Sucht undeutlich nach dem Word "roam".
Beispiel #14 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:
Beispiel #15 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 */);
|
|
Copyright © 2005-2011 Zend Technologies Inc (compiled by mikaelkael with ZFDocumentor - SVN 22695).

