70.2. Встроенные классы операторов #
В базовый дистрибутив Postgres Pro включены классы операторов SP-GiST, перечисленные в Таблице 70.1.
Таблица 70.1. Встроенные классы операторов 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) | ||
| |&> (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 ближайших соседей (k-NN) по индексированному набору точек или многоугольников.