DocumentationNeuronDB Documentation

SQL API Reference

Vector Types

vector(n)

A fixed-dimension vector of floating-point numbers.

Vector type examples

-- Create table with vector column
CREATE TABLE embeddings (
  id SERIAL PRIMARY KEY,
  embedding vector(1536)  -- 1536-dimensional vector
);

-- Insert vectors
INSERT INTO embeddings (embedding) VALUES ('[1, 2, 3]');
INSERT INTO embeddings (embedding) VALUES (ARRAY[1.0, 2.0, 3.0]::vector);

-- Cast from array
SELECT ARRAY[1.0, 2.0, 3.0]::vector(3);

Distance Operators

OperatorDescriptionReturn TypeExample
<->L2 (Euclidean) distancefloatembedding <-> '[1,2,3]'
<=>Cosine distancefloatembedding <=> '[1,2,3]'
<#>Inner product (negative dot product)floatembedding <#> '[1,2,3]'

Embedding Functions

neurondb_embed(text, model)

Generate embeddings using configured LLM providers.

Parameters: text (TEXT), model (TEXT)

Returns: vector

Embedding generation

-- Configure OpenAI provider
SET neurondb.llm_provider = 'openai';
SET neurondb.llm_api_key = 'sk-...';

-- Generate embedding
SELECT neurondb_embed('Hello world', 'text-embedding-ada-002');

-- Batch embeddings
INSERT INTO documents (content, embedding)
SELECT content, neurondb_embed(content, 'text-embedding-ada-002')
FROM documents WHERE embedding IS NULL;

Index Functions

Creating Indexes

Index creation

-- HNSW index
CREATE INDEX ON documents USING hnsw (embedding vector_l2_ops)
WITH (m = 16, ef_construction = 64);

-- IVF index
CREATE INDEX ON documents USING ivfflat (embedding vector_cosine_ops)
WITH (lists = 100);

ML Functions

cluster_kmeans

K-Means clustering algorithm.

K-Means clustering

SELECT *
FROM cluster_kmeans(
  (SELECT embedding FROM documents),
  5,         -- k
  500,       -- max_iter
  0.001      -- tol
);

Next Steps