Встроенные классы операторов#

Основной дистрибутив PostgreSQL включает классы операторов SP-GiST, показанные в таблице:

Имя

Индексируемые операторы

Заказ операторов

box_ops

<< (box, box)

<-> (box, point)

&< (box,box)

&> (box, box)

>> (box, box)

<@ (box,box)

@> (box,box)

~= (box, box)

&& (box,box)

<<| (box, box)

&<| (box,box)

|&> (box,box)

|>> (box,box)

inet_ops

<< (inet,inet)

<<= (inet,inet)

>> (inet,inet)

>>= (inet,inet)

= (inet,inet)

<> (inet,inet)

< (inet,inet)

<= (inet,inet)

> (inet,inet)

>= (inet,inet)

&& (inet,inet)

kd_point_ops

|>> (point, point)

<-> (point, point)

<< (point,point)

>> (point,point)

<<| (point,point)

~= (point,point)

<@ (point,box)

poly_ops

<< (polygon,polygon)

<-> (polygon, point)

&< (polygon, polygon)

&> (polygon, polygon)

>> (polygon,polygon)

<@ (многоугольник, многоугольник)

@> (polygon,polygon)

~= (polygon, polygon)

&& (polygon,polygon)

<<| (polygon, polygon)

&<| (polygon, polygon)

|>> (polygon, polygon)

|&> (polygon, polygon)

quad_point_ops

|>> (point, point)

<-> (point, point)

<< (point,point)

>> (point,point)

<<| (point,point)

~= (point,point)

<@ (point,box)

range_ops

= (anyrange, anyrange)

&& (anyrange,anyrange)

@> (anyrange, anyelement)

@> (anyrange,anyrange)

<@ (anyrange,anyrange)

<< (anyrange, anyrange)

>> (anyrange, anyrange)

&< (anyrange, anyrange)

&> (anyrange,anyrange)

-|- (anyrange, anyrange)

text_ops

= (text,text)

< (text,text)

<= (text,text)

> (text,text)

>= (text,text)

~<~ (text,text)

~<=~ (text,text)

~>=~ (text,text)

~>~ (text,text)

^@ (text,text)

Из двух классов операторов для типа point по умолчанию используется quad_point_ops. kd_point_ops поддерживает те же операторы, но использует другую индексную структуру данных, которая может обеспечить лучшую производительность в некоторых приложениях.

Классы операторов quad_point_ops, kd_point_ops и poly_ops поддерживают оператор упорядочивания <->, который позволяет осуществлять поиск k-nearest neighbor (k-NN) по индексированным наборам данных точек или многоугольников.