From 88ef369b6252d3290b4e0e96ac491a0412148b8c Mon Sep 17 00:00:00 2001 From: Jaap Aarts Date: Sat, 31 Aug 2024 14:55:08 +0200 Subject: [PATCH 1/2] Add example usage for faiss extension --- extensions/faiss/description.yml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/extensions/faiss/description.yml b/extensions/faiss/description.yml index 88331fe..5b44194 100644 --- a/extensions/faiss/description.yml +++ b/extensions/faiss/description.yml @@ -19,6 +19,19 @@ repo: docs: hello_world: | - -- github.com/arjenpdevries/faiss/blob/main/README.md + load faiss; + -- Generate semi-random input data and queries + -- Note that the dimensionality of our data will be 5 + CREATE TABLE input AS SELECT i as id, apply(generate_series(1, 5), j-> CAST(hash(i*1000+j) AS FLOAT)/18446744073709551615) as data FROM generate_series(1, 1000) s(i); + CREATE TABLE queries AS SELECT i as id, apply(generate_series(1, 5), j-> CAST(hash(i*1000+j+8047329823) AS FLOAT)/18446744073709551615) as data FROM generate_series(1, 10) s(i); + -- Create the index and insert data into it + CALL FAISS_CREATE('name', 5, 'IDMap,HNSW32'); + CALL FAISS_ADD((SELECT id, data FROM input), 'name'); + -- Get 10 results with uneven id + SELECT id, UNNEST(FAISS_SEARCH_FILTER('name', 10, data, 'id%2==0', 'rowid', 'input')) FROM queries; + -- Get 10 results with even id + SELECT id, UNNEST(FAISS_SEARCH_FILTER('name', 10, data, 'id%2==0', 'rowid', 'input')) FROM queries; + -- Get 10 results + SELECT id, UNNEST(FAISS_SEARCH('name', 10, data)) FROM queries; extended_description: | The FAISS extension allows duckdb users to store vector data in faiss, and query this data, making reliable vector search more accessible. From 920eb70a71ef8f90bf53ca68ffff0790e8544809 Mon Sep 17 00:00:00 2001 From: Jaap Aarts Date: Sat, 31 Aug 2024 17:23:37 +0200 Subject: [PATCH 2/2] Remove load faiss; --- extensions/faiss/description.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/extensions/faiss/description.yml b/extensions/faiss/description.yml index 5b44194..9c46c23 100644 --- a/extensions/faiss/description.yml +++ b/extensions/faiss/description.yml @@ -19,7 +19,6 @@ repo: docs: hello_world: | - load faiss; -- Generate semi-random input data and queries -- Note that the dimensionality of our data will be 5 CREATE TABLE input AS SELECT i as id, apply(generate_series(1, 5), j-> CAST(hash(i*1000+j) AS FLOAT)/18446744073709551615) as data FROM generate_series(1, 1000) s(i);