# Dokumentasi Django 5.2.8

# Indeks model khusus PostgreSQL

Berikut adalah indexes khusus PostgreSQL tersedia dari modul `django.contrib.postgres.indexes`.

## `BloomIndex`

class BloomIndex(*expressions, length=None, columns=(), **options)

  Creates a bloom index.

  To use this index access you need to activate the bloom extension on PostgreSQL. You can install it using the `BloomExtension` migration operation.

  Provide an integer number of bits from 1 to 4096 to the `length` parameter to specify the length of each index entry. PostgreSQL's default is 80.

  The `columns` argument takes a tuple or list of up to 32 values that are integer number of bits from 1 to 4095.

## `BrinIndex`

class BrinIndex(*expressions, autosummarize=None, pages_per_range=None, **options)

  Buat BRIN index.

  Lihat parameter `autosummarize` menjadi `True` untuk mengadakan automatic summarization untuk dilakukan oleh autovacuum.

  Argumen `pages_per_range` megnambil integer positif.

## `BTreeIndex`

class BTreeIndex(*expressions, fillfactor=None, deduplicate_items=None, **options)

  Membuat sebuah indeks B-Tree.

  Sediakan nilai integer dari 10 ke 100 pada parameter fillfactor untuk mengatur bagaimana halaman indeks dibungkus. Awalan PostgreSQL adalah 90.

  Provide a boolean value to the deduplicate_items parameter to control whether deduplication is enabled. PostgreSQL enables deduplication by default.

## `GinIndex`

class GinIndex(*expressions, fastupdate=None, gin_pending_list_limit=None, **options)

  Membuat sebuah gin index.

  To use this index on data types not in the built-in operator classes, you need to activate the btree_gin extension on PostgreSQL. You can install it using the `BtreeGinExtension` migration operation.

  Setel parameter `fastupdate` menjadi `False` untuk meniadakan GIN Fast Update Technique yang diadakan secara awalan di PostgreSQL.

  Provide an integer number of kilobytes to the gin_pending_list_limit parameter to tune the maximum size of the GIN pending list which is used when `fastupdate` is enabled.

## `GistIndex`

class GistIndex(*expressions, buffering=None, fillfactor=None, **options)

  Membuat sebuah GiST index. Indeks-indeks ini otomatis dibuat pada bidang spasial dengan `spatial_index=True`. Mereka juga berguna pada jenis lain, seperti `HStoreField` atau range fields.

  To use this index on data types not in the built-in gist operator classes, you need to activate the btree_gist extension on PostgreSQL. You can install it using the `BtreeGistExtension` migration operation.

  Setel parameter `buffering` menjadi `True` atau `False` untuk secara manual mengadakan atau meniadakan buffering build dari indeks.

  Sediakan nilai integer dari 10 ke 100 pada parameter fillfactor untuk mengatur bagaimana halaman indeks dibungkus. Awalan PostgreSQL adalah 90.

## `HashIndex`

class HashIndex(*expressions, fillfactor=None, **options)

  Membuat sebuah indeks campuran.

  Sediakan nilai integer dari 10 ke 100 pada parameter fillfactor untuk mengatur bagaimana halaman indeks dibungkus. Awalan PostgreSQL adalah 90.

## `SpGistIndex`

class SpGistIndex(*expressions, fillfactor=None, **options)

  Membuat sebuah SP-GiST index.

  Sediakan nilai integer dari 10 ke 100 pada parameter fillfactor untuk mengatur bagaimana halaman indeks dibungkus. Awalan PostgreSQL adalah 90.

## `OpClass()` expressions

class OpClass(expression, name)

  An `OpClass()` expression represents the `expression` with a custom operator class that can be used to define functional indexes, functional unique constraints, or exclusion constraints. To use it, you need to add `'django.contrib.postgres'` in your `INSTALLED_APPS`. Set the `name` parameter to the name of the operator class.

  Sebagai contoh:

      Index(
          OpClass(Lower("username"), name="varchar_pattern_ops"),
          name="lower_username_idx",
      )

  creates an index on `Lower('username')` using `varchar_pattern_ops`.

      UniqueConstraint(
          OpClass(Upper("description"), name="text_pattern_ops"),
          name="upper_description_unique",
      )

  creates a unique constraint on `Upper('description')` using `text_pattern_ops`.

      ExclusionConstraint(
          name="exclude_overlapping_ops",
          expressions=[
              (OpClass("circle", name="circle_ops"), RangeOperators.OVERLAPS),
          ],
      )

  creates an exclusion constraint on `circle` using `circle_ops`.