Semantic search for your Postgres tables
Connect a table, pick the columns you want to search, and find rows by what they mean instead of the exact words in them.
100 free credits on sign up. No card required.
Your table
public.products
Search
Text columns
The text people search.
title, description, tags Image column
Image URLs, searchable by description or photo.
image_url Metadata columns
Returned with results and used in filters.
price, category, in_stock Nothing to install. Your database stays as it is. We handle the indexing on our side.
Forgives typos. Misspelled searches still land on the right rows.
Any language. Search in one language, match rows written in another.
You set everything up from the Vecstore dashboard.
All you do is 1 connect your database, 2 pick a table and databases and 3 choose the columns to search.
Sync changes
Imports rows edited since the last sync. Quick and uses few credits. Needs a last-updated column.
Full resync
Re-reads the whole table. Also removes documents whose rows were deleted.
Run a changes sync from a cron job or right after your app writes, and a full resync now and then to clear out deleted rows.
Use a read-only user. Grant it access to just the tables you want to search.
We only show the host. Once saved, the connection string isn't shown in the dashboard again.
Checked before saving. When you update the connection, we test it before replacing the old one.
Want the full walkthrough? Read the guide .
Connect your database →It imports rows from a Postgres table into Vecstore databases, so you can search them by meaning, by image, or with a photo. Each row becomes one document.
No. Vecstore reads from your table and never writes to it. The table needs a primary key or another unique column so rows can be matched to documents.
You choose when to sync, from the dashboard or by calling the sync endpoint from your own code, like a cron job or after a deploy. If the table has a last-updated column, a changes sync imports only rows edited since the last sync. A full resync re-reads every row and removes documents whose rows were deleted.
Any timestamp, date or integer column that goes up when a row changes, such as updated_at or a version number.
It is stored server side and never shown again after you save it. The dashboard only shows the host. We recommend a read-only user that can see just the tables you want to sync.
Yes, if the table has a column with http(s) image URLs. Pick it as the image column and connect an image database.
Importing and searching use credits like any other Vecstore request. You get 100 free credits when you sign up, no card required. See the pricing page for plans.

3–4ms average search latency
100 Free credits. No credit card required.