Unaccent
¶La recherche unaccent
permet d’effectuer des recherches qui ne dépendent pas des différences d’accents en utilisant une extension PostgreSQL dédiée.
Cette recherche est implémentée en utilisant Transform
, elle peut donc être suivie par d’autres fonctions de recherche. Pour l’utiliser, vous devez ajouter 'django.contrib.postgres'
dans votre réglage INSTALLED_APPS
et activer l’extension unaccent dans PostgreSQL. L’opération de migration UnaccentExtension
est disponible si vous souhaitez procéder à cette activation au moyen des migrations.
La recherche unaccent
peut être utilisée avec les champs CharField
et TextField
:
>>> City.objects.filter(name__unaccent="México")
['<City: Mexico>']
>>> User.objects.filter(first_name__unaccent__startswith="Jerem")
['<User: Jeremy>', '<User: Jérémy>', '<User: Jérémie>', '<User: Jeremie>']
Avertissement
Les recherches unaccent
fonctionnent très bien dans la plupart des cas. Cependant, les requêtes utilisant ce filtre effectuent généralement des parcours complets des tables, ce qui peut être lent pour les grandes tables. Dans ces situations, il peut valoir la peine d’utiliser les outils dédiés d’indexation plein texte.
août 01, 2016