---
title: "PostgreSQL specific lookups"
version: 2.1
locale: el
source: https://docs.djangoproject.com/el/2.1/ref/contrib/postgres/lookups/
canonical: https://djangodocs.dev/el/2.1/ref/contrib/postgres/lookups/
---
# PostgreSQL specific lookups

## Trigram similarity

The `trigram_similar` lookup allows you to perform trigram lookups,
measuring the number of trigrams (three consecutive characters) shared, using a
dedicated PostgreSQL extension. A trigram lookup is given an expression and
returns results that have a similarity measurement greater than the current
similarity threshold.

To use it, add `'django.contrib.postgres'` in your [`INSTALLED_APPS`](/el/2.1/ref/settings/#std-setting-INSTALLED_APPS)
and activate the [pg\_trgm extension](https://www.postgresql.org/docs/current/static/pgtrgm.html) on
PostgreSQL. You can install the extension using the
[`TrigramExtension`](/el/2.1/ref/contrib/postgres/operations/#django.contrib.postgres.operations.TrigramExtension) migration
operation.

The `trigram_similar` lookup can be used on
[`CharField`](/el/2.1/ref/models/fields/#django.db.models.CharField) and [`TextField`](/el/2.1/ref/models/fields/#django.db.models.TextField):

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

## `Unaccent`

The `unaccent` lookup allows you to perform accent-insensitive lookups using
a dedicated PostgreSQL extension.

This lookup is implemented using [`Transform`](/el/2.1/ref/models/lookups/#django.db.models.Transform), so it
can be chained with other lookup functions. To use it, you need to add
`'django.contrib.postgres'` in your [`INSTALLED_APPS`](/el/2.1/ref/settings/#std-setting-INSTALLED_APPS) and activate
the [unaccent extension on PostgreSQL](https://www.postgresql.org/docs/current/static/unaccent.html). The
[`UnaccentExtension`](/el/2.1/ref/contrib/postgres/operations/#django.contrib.postgres.operations.UnaccentExtension) migration
operation is available if you want to perform this activation using migrations).

The `unaccent` lookup can be used on
[`CharField`](/el/2.1/ref/models/fields/#django.db.models.CharField) and [`TextField`](/el/2.1/ref/models/fields/#django.db.models.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>']
```

> **Warning**
>
> `unaccent` lookups should perform fine in most use cases. However, queries
> using this filter will generally perform full table scans, which can be slow
> on large tables. In those cases, using dedicated full text indexing tools
> might be appropriate.
