В базовый дистрибутив PostgreSQL включены классы операторов GIN, перечисленные в Таблице 63.1. (Некоторые дополнительные модули, описанные в Приложении F, добавляют другие классы операторов GIN.)
Таблица 63.1. Встроенные классы операторов GIN
| Имя | Индексируемый тип данных | Индексируемые операторы |
|---|---|---|
_abstime_ops | abstime[] |
&&
<@
=
@>
|
_bit_ops | bit[] |
&&
<@
=
@>
|
_bool_ops | boolean[] |
&&
<@
=
@>
|
_bpchar_ops | character[] |
&&
<@
=
@>
|
_bytea_ops | bytea[] |
&&
<@
=
@>
|
_char_ops | "char"[] |
&&
<@
=
@>
|
_cidr_ops | cidr[] |
&&
<@
=
@>
|
_date_ops | date[] |
&&
<@
=
@>
|
_float4_ops | float4[] |
&&
<@
=
@>
|
_float8_ops | float8[] |
&&
<@
=
@>
|
_inet_ops | inet[] |
&&
<@
=
@>
|
_int2_ops | smallint[] |
&&
<@
=
@>
|
_int4_ops | integer[] |
&&
<@
=
@>
|
_int8_ops | bigint[] |
&&
<@
=
@>
|
_interval_ops | interval[] |
&&
<@
=
@>
|
_macaddr_ops | macaddr[] |
&&
<@
=
@>
|
_money_ops | money[] |
&&
<@
=
@>
|
_name_ops | name[] |
&&
<@
=
@>
|
_numeric_ops | numeric[] |
&&
<@
=
@>
|
_oid_ops | oid[] |
&&
<@
=
@>
|
_oidvector_ops | oidvector[] |
&&
<@
=
@>
|
_reltime_ops | reltime[] |
&&
<@
=
@>
|
_text_ops | text[] |
&&
<@
=
@>
|
_time_ops | time[] |
&&
<@
=
@>
|
_timestamp_ops | timestamp[] |
&&
<@
=
@>
|
_timestamptz_ops | timestamp with time zone[] |
&&
<@
=
@>
|
_timetz_ops | time with time zone[] |
&&
<@
=
@>
|
_tinterval_ops | tinterval[] |
&&
<@
=
@>
|
_varbit_ops | bit varying[] |
&&
<@
=
@>
|
_varchar_ops | character varying[] |
&&
<@
=
@>
|
jsonb_ops | jsonb |
?
?&
?|
@>
|
jsonb_path_ops | jsonb |
@>
|
tsvector_ops | tsvector |
@@
@@@
|
Из двух классов операторов для типа jsonb классом по умолчанию является jsonb_ops. Класс jsonb_path_ops поддерживает меньше операторов, но обеспечивает для них большую производительность. За подробностями обратитесь к Подразделу 8.14.4.