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

Django combinant les recherches __unaccent et __search

La façon de le faire est de définir une configuration de recherche personnalisée dans la base de données comme :

CREATE TEXT SEARCH CONFIGURATION unaccent ( COPY = french );
ALTER TEXT SEARCH CONFIGURATION unaccent ALTER MAPPING FOR hword, hword_part, word WITH unaccent, simple;

Je ne suis pas un expert de postgres, mais cette configuration fonctionne pour moi. Pour plus de détails, consultez le tutoriel comme celui-ci :http://www.nomadblue.com/blog/django/from-like-to-full-text-search-part-ii/

puis utilisez ceci dans Django :

from django.contrib.postgres.search import SearchVector, SearchQuery

Game.objects.annotate(unaccent_title=SearchVector('title', config='unaccent')).filter(unaccent_title=SearchQuery('Pokemon', config='unaccent'))