From b52dff56c2596fec9ac25f6d1f76b5a61df049c6 Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Tue, 12 Dec 2023 21:53:09 -0500 Subject: [PATCH] Test latest version --- README.md | 2 -- postmodern.lisp | 8 +++++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index de30900..626dbff 100644 --- a/README.md +++ b/README.md @@ -36,8 +36,6 @@ Insert a vector Get the nearest neighbors ```lisp -(register-sql-operators :2+-ary :<-> :<#> :<=>) - (doquery (:limit (:order-by (:select 'id 'embedding :from 'items) (:<-> 'embedding "[1,1,1]")) 5) (id embedding) (format t "~A: ~A~%" id embedding)) ``` diff --git a/postmodern.lisp b/postmodern.lisp index 82c30cd..f288166 100644 --- a/postmodern.lisp +++ b/postmodern.lisp @@ -7,14 +7,16 @@ (query (:drop-table :if-exists 'items)) -(query "CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3))") +(query (:create-table 'items + ((id :type bigserial :primary-key t) + (embedding :type (vector 3))))) (query (:insert-into 'items :set 'embedding "[1,1,1]")) (query (:insert-rows-into 'items :columns 'embedding :values '(("[2,2,2]") ("[1,1,2]")))) -(register-sql-operators :2+-ary :<-> :<#> :<=>) - (doquery (:limit (:order-by (:select 'id 'embedding :from 'items) (:<-> 'embedding "[1,1,1]")) 5) (id embedding) (format t "~A: ~A~%" id embedding)) +(query (:create-index 'items_embedding_idx :on 'items :using 'ivfflat :fields 'embedding :with (:= 'lists 1))) +;; or (query "CREATE INDEX ON items USING hnsw (embedding vector_l2_ops)")