Встроенные классы операторов
Основной дистрибутив 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
) по индексированным наборам данных точек или многоугольников.