PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Django Combinando Pesquisas __unaccent e __search


A maneira de fazer isso é definir a configuração de pesquisa personalizada no banco de dados como:
CREATE TEXT SEARCH CONFIGURATION unaccent ( COPY = french );
ALTER TEXT SEARCH CONFIGURATION unaccent ALTER MAPPING FOR hword, hword_part, word WITH unaccent, simple;

Eu não sou um especialista em postgres, mas essa configuração funciona para mim. Para mais detalhes, consulte o tutorial como este:http://www.nomadblue.com/blog/django/from-like-to-full-text-search-part-ii/

e então use isso no 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'))