sql >> Databáze >  >> RDS >> PostgreSQL

Django Kombinace vyhledávání __unaccent a __search

Způsob, jak toho dosáhnout, je definovat vlastní konfiguraci vyhledávání v databázi jako:

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

Nejsem odborník na postgres, ale tato konfigurace mi funguje. Další podrobnosti naleznete v tomto tutoriálu:http://www.nomadblue.com/blog/django/from-like-to-full-text-search-part-ii/

a pak to použijte v 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'))



  1. Přepište URL a nahraďte ID titulkem v řetězci dotazu

  2. vzorec pro vypočítaný sloupec založený na sloupci jiné tabulky

  3. Nativní obrázek dat Micronaut:Neexistuje žádný objekt typu bean [io.micronaut.data.operations.PrimaryRepositoryOperations]

  4. Dotaz Django raw(), vypočítané pole v klauzuli WHERE