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 :inställning:`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")
['<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 :inställning:`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")
['<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 :inställning:`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.
Denna uppslagning implementeras med Transform
, så det kan kedjas med andra uppslagningsfunktioner. För att använda det måste du lägga till 'django.contrib.postgres
i din INSTALLED_APPS
och aktivera unaccent-tillägget på PostgreSQL. Migreringsoperationen UnaccentExtension
är tillgänglig om du vill utföra denna aktivering med hjälp av migreringar).
Uppslagningen unaccent
kan användas på CharField
och TextField
:
>>> City.objects.filter(name__unaccent="México")
['<City: Mexico>']
>>> User.objects.filter(first_name__unaccent__startswith="Jerem")
['<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.