We are working on a project and we are using Django 1.10a1
, we're using django full text search with PostgreSQL but we need to use unaccent.
So, I have this code:
search = 'Car'
query_set = Article.objects.annotate(
search=SearchVector(
'content',
'name'
)
).filter(
search__unaccent=search
)
When we tried adding unaccent
word after search
the query doesn't work.
How can we get django full text search to work with postgress unaccent?
Install the unaccent extension into your database:
mydb=# CREATE EXTENSION unaccent;
Create a new search configuration, based on an other one:
mydb=# CREATE TEXT SEARCH CONFIGURATION french_unaccent( COPY = french );
Insert the unaccent dictionary into your new search configuration:
mydb=# ALTER TEXT SEARCH CONFIGURATION french_unaccent
ALTER MAPPING FOR hword, hword_part, word
WITH unaccent, french_stem;
Use this configuration in your Django query :
search = 'Car'
query_set = Article.objects.annotate(
search=SearchVector('content','name', config='french_unaccent')
).filter(search=SearchQuery(search, config='french_unaccent')))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With