Aller au contenu principal

API Requêtes

Construisez des requêtes complexes avec l'API de Whoosh-NG.

Classes principales​

Query​

Classe de base pour toutes les requêtes.

class whoosh.query.Query

Méthodes​

MéthodeDescription
q.all(methodname, *args)Applique une méthode à tous les termes
q.normalize()Normalise la représentation textuelle
q.replace(fieldname, old, new)Remplace un terme
q.exclude(term)Exclut un terme spécifique
q.fieldnameChamp principal de la requête
q.children()Requêtes enfants (pour opérateurs)

Requêtes booléennes​

And​

And(require, boost=1.0)
# Tous doivent matcher

Or​

Or(require, boost=1.0)
# Un seul doit matcher

Not​

Not(require, exclude=None)

Requête Term​

Term(fieldname, text, boost=1.0)

Plages​

NumericRange​

NumericRange(fieldname, start, end, startexcl=False, endexcl=False)

DateRange​

DateRange(fieldname, start, end, startexcl=False, endexcl=False)

Phrase et proximité​

Phrase​

Phrase(fieldname, words, slop=1, boost=1.0)

Distance / Near​

Prefix​

Prefix(fieldname, text, boost=1.0)

Combinateurs avancés​

Every​

Every(fieldname, boost=1.0)

Null​

NullQuery

Opérateurs de requête globaux​

RequêteDescription
TermÉgalité exacte (pas d'analyse)
VariationsVariantes lexicales
FuzzyTermRecherche floue
WildcardJokers (lent sur grands corpus)
RegexExpression régulière

Construction manuelle​

from whoosh.query import (
Term, And, Or, Not, Phrase, NumericRange, DateRange
)

q = And([
Term("status", "published"),
NumericRange("date", 2020, 2025),
Or([Term("tags", "python"), Term("tags", "recherche")]),
Phrase("content", ["tutoriel", "whoosh"])
])