PostgreSQL-specifika uppslagningar

Likhet mellan trigram

trigram_liknande

Med `` trigram_similar``-uppslagningen kan du utföra trigramuppslagningar, mäta antalet trigram (tre på varandra följande tecken) som delas med hjälp av en dedikerad PostgreSQL-förlängning. En trigramuppslagning ges ett uttryck och returnerar resultat som har en likhetsmätning som är större än det aktuella likhetströskeln.

För att använda den, lägg till 'django.contrib.postgres' i din INSTALLED_APPS och aktivera pg_trgm-förlängningen på PostgreSQL. Du kan installera tillägget med hjälp av TrigramExtension migreringsoperation.

Uppslagningen trigram_similar kan användas på CharField och TextField:

>>> City.objects.filter(name__trigram_similar="Middlesborough")
<QuerySet [<City: Middlesbrough>]>

trigram_ord_liknande

Med trigram_word_similar lookup kan du utföra trigramordlikhetsuppslagningar med hjälp av ett dedikerat PostgreSQL-tillägg. Det kan ungefär förstås som att mäta det största antalet trigram som delas mellan parametern och någon understräng i fältet. En trigramorduppslagning ges ett uttryck och returnerar resultat som har en ordlikhetsmätning som är större än det aktuella likhetströskeln.

För att använda den, lägg till 'django.contrib.postgres' i din INSTALLED_APPS och aktivera pg_trgm-förlängningen på PostgreSQL. Du kan installera tillägget med hjälp av TrigramExtension migreringsoperation.

Uppslagningen trigram_word_similar kan användas på CharField och TextField:

>>> Sentence.objects.filter(name__trigram_word_similar="Middlesborough")
<QuerySet [<Sentence: Gumby rides on the path of Middlesbrough>]>

trigram_strikt_ord_liknande

Liknar trigram_word_similar, förutom att den tvingar extent-gränser att matcha ordgränser.

För att använda den, lägg till 'django.contrib.postgres' i din INSTALLED_APPS och aktivera pg_trgm-förlängningen på PostgreSQL. Du kan installera tillägget med hjälp av TrigramExtension migreringsoperation.

Uppslagningen trigram_strict_word_similar kan användas på CharField och TextField.

Unaccent

Med unaccent lookup kan du utföra accentkänsliga lookups med hjälp av en dedikerad PostgreSQL-förlängning.

This lookup is implemented using Transform, so it can be chained with other lookup functions. To use it, you need to add 'django.contrib.postgres' in your INSTALLED_APPS and activate the unaccent extension on PostgreSQL. The UnaccentExtension migration operation is available if you want to perform this activation using migrations.

Uppslagningen unaccent kan användas på CharField och TextField:

>>> City.objects.filter(name__unaccent="México")
<QuerySet [<City: Mexico>]>

>>> User.objects.filter(first_name__unaccent__startswith="Jerem")
<QuerySet [<User: Jeremy>, <User: Jérémy>, <User: Jérémie>, <User: Jeremie>]>

Varning

Unaccent-uppslagningar bör fungera bra i de flesta användningsfall. Frågor som använder det här filtret kommer dock i allmänhet att utföra fullständiga tabellskanningar, vilket kan vara långsamt i stora tabeller. I dessa fall kan det vara lämpligt att använda dedikerade fulltextindexeringsverktyg.