PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come usare `unaccent` con la ricerca di testo completo in django 1.10?

Installa unaccent estensione nel tuo database:

mydb=# CREATE EXTENSION unaccent;

Crea una nuova configurazione di ricerca, basata su un'altra:

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

Inserisci il unaccento dizionario nella nuova configurazione di ricerca:

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

Usa questa configurazione nella tua query Django :

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