Feat v0.8.3 vector column (#70)
All checks were successful
CI/CD / detect-changes (push) Successful in 4s
CI/CD / test-runners (push) Has been skipped
CI/CD / test-frontend (push) Has been skipped
CI/CD / e2e-smoke (push) Has been skipped
CI/CD / test-sqlite (push) Successful in 2m59s
CI/CD / test-go-pg (push) Successful in 2m58s
CI/CD / build-and-deploy (push) Successful in 1m14s
All checks were successful
CI/CD / detect-changes (push) Successful in 4s
CI/CD / test-runners (push) Has been skipped
CI/CD / test-frontend (push) Has been skipped
CI/CD / e2e-smoke (push) Has been skipped
CI/CD / test-sqlite (push) Successful in 2m59s
CI/CD / test-go-pg (push) Successful in 2m58s
CI/CD / build-and-deploy (push) Successful in 1m14s
Co-authored-by: Jeffrey Smith <jasafpro@gmail.com> Co-committed-by: Jeffrey Smith <jasafpro@gmail.com>
This commit was merged in pull request #70.
This commit is contained in:
@@ -136,6 +136,33 @@ results = db.query_batch([
|
||||
# Each query spec supports: table (required), filters, order, limit, before, after, search_like
|
||||
```
|
||||
|
||||
#### Vector similarity search
|
||||
|
||||
```python
|
||||
# Find rows with the most similar embeddings (cosine distance)
|
||||
rows = db.query_similar(
|
||||
"documents", # table name
|
||||
"embedding", # vector column name
|
||||
vector=[0.1, 0.2, ...], # query vector (list of floats)
|
||||
limit=10, # max results (default 10, max 100)
|
||||
filters={"active": True}, # optional equality filters
|
||||
metric="cosine", # only "cosine" supported
|
||||
)
|
||||
# Returns rows ordered by ascending _distance (0.0 = identical, 1.0 = orthogonal)
|
||||
# Each row dict includes an injected "_distance" float key.
|
||||
```
|
||||
|
||||
Vector columns are declared as `"vector(N)"` in the manifest `db_tables` block
|
||||
(N = dimension, 1–4096). Storage varies by backend:
|
||||
|
||||
| Backend | Column type | Search |
|
||||
|---------|-------------|--------|
|
||||
| Postgres + pgvector | `vector(N)` with HNSW index | Native `<=>` operator |
|
||||
| Postgres (no pgvector) | `JSONB` | Go-side cosine computation |
|
||||
| SQLite | `TEXT` | Go-side cosine computation |
|
||||
|
||||
Insert vectors as lists: `db.insert("docs", {"embedding": [0.1, 0.2, 0.3]})`.
|
||||
|
||||
#### Write operations
|
||||
|
||||
```python
|
||||
|
||||
Reference in New Issue
Block a user