---
title: "Pencarian khusus PostgreSQL"
version: 3.2
locale: id
source: https://docs.djangoproject.com/id/3.2/ref/contrib/postgres/lookups/
canonical: https://djangodocs.dev/id/3.2/ref/contrib/postgres/lookups/
---
# Pencarian khusus PostgreSQL

## Kemiripan trigram

Pencarian `trigram_similar` mengizinkan anda melakukan pencarian triagram, mengukur angka dari triagram (tiga karakter berurutan) dibagi, menggunakan tambahan PostgreSQL keseluruhan. Sebuah pencarian triagram diberikan sebuah pernyataan dan mengembalikan hasil bahwa mempunyai pengukuran kemiripan lebih besar dari ambang kemiripan saat ini.

Untuk menggunakan itu, tambah `'django.contrib.postgres'` dalam [`INSTALLED_APPS`](/id/3.2/ref/settings/#std-setting-INSTALLED_APPS) anda dan aktifkan [pg\_trgm extension](https://www.postgresql.org/docs/current/pgtrgm.html) pada PostgreSQL. Anda dapat memasang tambahan menggunakan tindakan perpindahan [`TrigramExtension`](/id/3.2/ref/contrib/postgres/operations/#django.contrib.postgres.operations.TrigramExtension).

Pencarian `trigram_similar` dapat digunakan pada [`CharField`](/id/3.2/ref/models/fields/#django.db.models.CharField) dan [`TextField`](/id/3.2/ref/models/fields/#django.db.models.TextField):

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

## `Unaccent`

Pencarian `unaccent` mengizinkan anda melakukan pencarian aksen-peka menggunakan tambahan PostgreSQL khusus.

Pencarian ini diterapkan menggunakan [`Transform`](/id/3.2/ref/models/lookups/#django.db.models.Transform), jadi itu dapat diikat dengan fungsi pencarian lain. Untuk menggunakan itu, anda butuh menambah `'django.contrib.postgres'` dalam [`INSTALLED_APPS`](/id/3.2/ref/settings/#std-setting-INSTALLED_APPS) anda dan mengaktifkan [unaccent extension on PostgreSQL](https://www.postgresql.org/docs/current/unaccent.html). Tindakan perpindahan [`UnaccentExtension`](/id/3.2/ref/contrib/postgres/operations/#django.contrib.postgres.operations.UnaccentExtension) tersedia jika anda ingin melakukan pengaktivan ini menggunakan perpindahan).

Pencarian `unaccent` dapat digunakan pada [`CharField`](/id/3.2/ref/models/fields/#django.db.models.CharField) dan [`TextField`](/id/3.2/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**
>
> Pencarian `unaccent` harus tampil baik dalam kebanyakan pengunaan kasus. Bagaimanapun, permintaan menggunakan penyaring ini akan umumnya melakukan pemindaian tabel penuh, yang dapat melambatkan pada tabel-tabel besar. Dalam kasus-kasus tersebut, menggunakan alat-alat pengindeksan teks penuh yang berdedikasi mungkin sesuai.
