@@ -186,6 +186,11 @@ CREATE OPERATOR <=> (
186186 COMMUTATOR = ' <=>'
187187);
188188
189+ CREATE OPERATOR < + > (
190+ LEFTARG = vector, RIGHTARG = vector, PROCEDURE = l1_distance,
191+ COMMUTATOR = ' <+>'
192+ );
193+
189194CREATE OPERATOR + (
190195 LEFTARG = vector, RIGHTARG = vector, PROCEDURE = vector_add,
191196 COMMUTATOR = +
@@ -288,6 +293,12 @@ CREATE OPERATOR CLASS vector_cosine_ops
288293 FUNCTION 3 vector_spherical_distance(vector, vector),
289294 FUNCTION 4 vector_norm(vector);
290295
296+ CREATE OPERATOR CLASS vector_l1_ops
297+ FOR TYPE vector USING ivfflat AS
298+ OPERATOR 1 < + > (vector, vector) FOR ORDER BY float_ops,
299+ FUNCTION 1 l1_distance(vector, vector),
300+ FUNCTION 3 l1_distance(vector, vector);
301+
291302CREATE OPERATOR CLASS vector_l2_ops
292303 FOR TYPE vector USING hnsw AS
293304 OPERATOR 1 < - > (vector, vector) FOR ORDER BY float_ops,
@@ -304,6 +315,11 @@ CREATE OPERATOR CLASS vector_cosine_ops
304315 FUNCTION 1 vector_negative_inner_product(vector, vector),
305316 FUNCTION 2 vector_norm(vector);
306317
318+ CREATE OPERATOR CLASS vector_l1_ops
319+ FOR TYPE vector USING hnsw AS
320+ OPERATOR 1 < + > (vector, vector) FOR ORDER BY float_ops,
321+ FUNCTION 1 l1_distance(vector, vector);
322+
307323-- bit functions
308324
309325CREATE FUNCTION hamming_distance (bit , bit ) RETURNS float8
0 commit comments