Practical overview
When it fits
Use it when application text is stored in PostgreSQL and you want automated embedding maintenance plus semantic, full-text, or hybrid search. Choose the HTTP service for a managed database when pgvector is available; choose the extension when you self-host PostgreSQL and can install it.
Who it is for
- Developers building search or RAG applications on PostgreSQL.
- Teams that need embedding generation and updates for text stored in database tables.
- PostgreSQL operators choosing between an external HTTP service and SQL functions installed as an extension.
Documented uses
- Generate embeddings from selected PostgreSQL text columns and keep them updated as records change.
- Search database content using semantic, full-text, or hybrid retrieval.
- Provide a PostgreSQL-backed retrieval layer for a RAG application.
- Expose database-backed search through HTTP or use SQL functions inside PostgreSQL.
Requirements & limits
- The HTTP service is recommended for managed databases and requires pgvector to be available in the database.
- The extension requires filesystem access to PostgreSQL and supports SQL-based vectorization and search.
- The HTTP mode exposes job-creation and search endpoints; the extension mode provides SQL functions.
- The documented stack includes pgvector for vector similarity, pgmq for background-job orchestration, and SentenceTransformers for embeddings.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Create and query an HTTP embedding job
Set up an embedding job for PostgreSQL text and search its records through the HTTP API.
Before you start
- PostgreSQL with pgvector available.
- The Pg Vectorize HTTP services; the documented local setup uses Docker Compose.
- A source table with text columns, a primary key, and an update-time column for the job configuration.
Steps
Start PostgreSQL and the HTTP services with the command below.
docker compose up -dSend a POST request to
/api/v1/tablewith the job name, source table and schema, text columns, primary key, update-time column, and model.Send a GET request to
/api/v1/searchwith the job name and query; optionally include a result limit.
Expected outcome
The job generates embeddings for existing source rows and watches for updates or new rows; the search endpoint returns matching records with semantic and full-text ranking fields.
Guide limitations
- This recipe uses the HTTP server and requires pgvector in the database.
- The HTTP services run separately from PostgreSQL.
- The documented example configures one table job; it does not establish a complete application or RAG interface.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 16 October 2026
- Original website title
- ChuckHend/pg_vectorize · Official homepage title · retained in its source language

