- hello
Requêtes supportées
Zend_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.
Example #1 Effectuer une requête pour un mot seul
Recherche le mot "hello" à travers les champs de tous les documents.
Note: 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).
Example #2 Effectuer une recherche de mots multiples
- hello dolly
Recherche deux mots. Les deux mots sont facultatifs, au moins l'un des deux doit être présent dans le résultat
Example #3 Mots requis dans une requête
- +hello dolly
Recherche deux mots ; "hello" est requis, "dolly" est facultatif.
Example #4 Interdire des mots dans les documents recherchés
- +hello -dolly
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.
Example #5 Rechercher des phrases
- "hello dolly"
Recherche de la phrases "hello dolly" ; un document correspond uniquement si la chaine exacte est présente.
Example #6 Effectuer des recherches dans des champs en particulier
- title:"The Right Way" AND text:go
Recherche la phrase "The Right Way" au sein du champ title et le mot "go" dans la propriété text.
Example #7 Effectuer des recherches dans des champs en particulier aussi bien que dans le document complet
- title:"The Right Way" AND go
Recherche la phrase "The Right Way" dans la propriété title et le mot "go" dans tous les champs du document.
Example #8 Effectuer des recherches dans des champs en particulier aussi bien que dans le document complet (Alternatif)
- title:Do it right
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.
Example #9 Faire des requêtes avec le joker "?"
- te?t
Recherche les mots correspondants au motif "te?t", où "?" est n'importe quel caractère unique.
Example #10 Faire des requêtes avec le joker "*"
- test*
Recherche les mots correspondants au motif "test*", où "*" est n'importe quelle séquence de 0 caractère ou plus.
Example #11 Rechercher une gamme inclusive de termes
- mod_date:[20020101 TO 20030101]
Recherche la gamme de termes (inclusif).
Example #12 Rechercher une gamme exclusive de termes
- title:{Aida to Carmen}
Recherche la gamme de termes (exculsif).
Example #13 Recherches floues
- roam~
Recherche foue pour le mot "roam".
Example #14 Recherches booléennes
- (framework OR library) AND php
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 :
Example #15 Combinaison d'analyse et de construction de requêtes
- $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 */);