# Django 5.2.8 documentation

# PostgreSQL-specifika modellindex

Följande är PostgreSQL-specifika indexes tillgängliga från modulen `django.contrib.postgres.indexes`.

## `BloomIndex`

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

  Skapar ett bloom-index.

  För att använda denna indexåtkomst måste du aktivera bloom-tillägget på PostgreSQL. Du kan installera den med hjälp av `BloomExtension` migreringsoperation.

  Ge ett heltal antal bitar från 1 till 4096 till parametern `length` för att ange längden på varje indexpost. PostgreSQL: s standard är 80.

  Argumentet `columns` tar en tupel eller lista med upp till 32 värden som är heltal med antal bitar från 1 till 4095.

## `BrinIndex`

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

  Skapar ett BRIN-index.

  Sätt parametern `autosummarize` till `True` för att aktivera automatisk sammanfattning som ska utföras av autovacuum.

  Argumentet `pages_per_range` tar ett positivt heltal.

## `BTreeIndex`

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

  Skapar ett B-Tree-index.

  Ge ett heltalsvärde från 10 till 100 till fillfactor-parametern för att ställa in hur packade indexsidorna kommer att vara. PostgreSQL: s standard är 90.

  Ge ett boolskt värde till deduplicate_items-parametern för att kontrollera om deduplicering är aktiverad. PostgreSQL aktiverar deduplicering som standard.

## `GinIndex`

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

  Skapar ett gin-index.

  För att använda detta index på datatyper som inte finns i de inbyggda operatörsklasserna <https://www.postgresql.org/docs/current/gin.html#GIN-BUILTIN-OPCLASSES>`_ måste du aktivera btree_gin-tillägget på PostgreSQL. Du kan installera den med hjälp av `BtreeGinExtension` migreringsoperation.

  Ställ in parametern `fastupdate` till `False` för att inaktivera GIN Fast Update Technique som är aktiverad som standard i PostgreSQL.

  Ange ett heltal i kilobyte i parametern gin_pending_list_limit för att ställa in den maximala storleken på GIN:s väntelista som används när `fastupdate` är aktiverat.

## `GistIndex`

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

  Skapar ett GiST-index. Dessa index skapas automatiskt på spatiala fält med `spatial_index=True`. De är också användbara på andra typer, till exempel `HStoreField` eller range fields.

  För att använda detta index på datatyper som inte finns i de inbyggda gistoperatörsklasserna måste du aktivera btree_gist-tillägget på PostgreSQL. Du kan installera den med hjälp av `BtreeGistExtension` migreringsoperation.

  Sätt parametern `buffring` till `True` eller `False` för att manuellt aktivera eller inaktivera buffring build av indexet.

  Ge ett heltalsvärde från 10 till 100 till fillfactor-parametern för att ställa in hur packade indexsidorna kommer att vara. PostgreSQL: s standard är 90.

## `HashIndex`

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

  Skapar ett hashindex.

  Ge ett heltalsvärde från 10 till 100 till fillfactor-parametern för att ställa in hur packade indexsidorna kommer att vara. PostgreSQL: s standard är 90.

## `SpGistIndex`

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

  Skapar ett SP-GiST-index.

  Ge ett heltalsvärde från 10 till 100 till fillfactor-parametern för att ställa in hur packade indexsidorna kommer att vara. PostgreSQL: s standard är 90.

## uttryck för `OpClass()`

class OpClass(expression, name)

  Ett `OpClass()`-uttryck representerar `uttrycket` med en anpassad operatorklass som kan användas för att definiera funktionella index, funktionella unika begränsningar eller uteslutningsbegränsningar. För att använda det måste du lägga till `'django.contrib.postgres'` i din `INSTALLED_APPS`. Ställ in parametern `name` till namnet på `operatorklassen`_.

  Till exempel:

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

  skapar ett index på `Lower('username')` med hjälp av `varchar_pattern_ops`.

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

  skapar en unik begränsning på `Upper('description')` med hjälp av `text_pattern_ops`.

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

  skapar en uteslutningsbegränsning på `circle` med hjälp av `circle_ops`.