Requêtes supportéesZend_Search_Lucene et Lucene Java supportent un langage de requête
puissant.
Il permet de rechercher des termes individuels, des phrases, des ensembles de termes ;
en utilisant des jokers ou des recherches floues ; en combinant des requêtes à l'aide
d'opérateurs booléens et ainsi de suite.
Une description détaillée du langage de requête peut être trouvé dans la documentation du
composant
Zend_Search_Lucene.
Ci-dessous, des exemples de quelques requêtes types communes et de stratégies.
Effectuer une requête pour un mot seul
Recherche le mot "hello" à travers les champs de tous les documents.
Champ de recherche par défaut
Note importante ! Lucene Java recherche uniquement dans les champs de "contenu" par
défaut, mais Zend_Search_Lucene recherche à travers
tous les champs. Ce comportement peut être modifié en utilisant
la méthode Zend_Search_Lucene::setDefaultSearchField($fieldName).
Effectuer une recherche de mots multiples
Recherche deux mots. Les deux mots sont facultatifs, au moins l'un des deux doit être
présent dans le résultat
Mots requis dans une requête
Recherche deux mots ; "hello" est requis, "dolly" est facultatif.
Interdire des mots dans les documents recherchés
Recherche avec deux mots ; "hello" est requis, 'dolly' est interdit. En d'autres termes,
si le document contient "hello", mais contient aussi le mot "dolly", il ne sera pas
retourné dans l'ensemble de résultats.
Rechercher des phrases
Recherche de la phrases "hello dolly" ; un document correspond uniquement si la chaine
exacte est présente.
Effectuer des recherches dans des champs en particulier
Recherche la phrase "The Right Way" au sein du champ title et le mot
"go" dans la propriété text.
Effectuer des recherches dans des champs en particulier aussi bien que dans le
document complet
Recherche la phrase "The Right Way" dans la propriété title et le
mot "go" dans tous les champs du document.
Effectuer des recherches dans des champs en particulier aussi bien que dans le
document complet (Alternatif)
Recherche le mot "Do" dans la propriété title et les mots "it" and
"right" dans tous les champs ; si l'un d'entre eux correspond, le document correspondra
à un résultat de recherche.
Faire des requêtes avec le joker "?"
Recherche les mots correspondants au motif "te?t", où "?" est n'importe quel caractère
unique.
Faire des requêtes avec le joker "*"
Recherche les mots correspondants au motif "test*", où "*" est n'importe quelle séquence
de 0 caractère ou plus.
Rechercher une gamme inclusive de termes
Recherche la gamme de termes (inclusif).
Rechercher une gamme exclusive de termes
Recherche la gamme de termes (exculsif).
Recherches floues
Recherche foue pour le mot "roam".
Recherches booléennes
Requête booléenne.
Toutes les requêtes supportées peuvent être construites via
l'API de construction de requêtes de
Zend_Search_Lucene. De plus l'analyse et la construction de requêtes
peuvent être combinées :
Combinaison d'analyse et de construction de requêtesaddSubquery($userQuery, true /* required */);
$query->addSubquery($constructedQuery, true /* required */);
]]>