PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment utiliser `unaccent` avec la recherche plein texte dans Django 1.10 ?

Installez le sans accent extension dans votre base de données :

mydb=# CREATE EXTENSION unaccent;

Créez une nouvelle configuration de recherche, basée sur une autre :

mydb=# CREATE TEXT SEARCH CONFIGURATION french_unaccent( COPY = french );

Insérez le sans accent dictionnaire dans votre nouvelle configuration de recherche :

mydb=# ALTER TEXT SEARCH CONFIGURATION french_unaccent
    ALTER MAPPING FOR hword, hword_part, word
    WITH unaccent, french_stem;

Utilisez cette configuration dans votre requête Django :

search = 'Car'
query_set = Article.objects.annotate(
                search=SearchVector('content','name', config='french_unaccent')
            ).filter(search=SearchQuery(search, config='french_unaccent')))