A normal search matches words: “mug” finds records containing “mug”. Vector search matches meaning: “something to drink tea from” can find the mug. Each record gets a vector (a list of numbers produced by an embedding model), and a search finds the records whose vectors are closest to the query’s.
Vector fields work on Pawabase Cloud with nothing to set up. If a table change is refused because vectors are not available for your database, see When vector search is unavailable.

1. Add an embedding model

In AI → Models, add a model of kind Embeddings (for example OpenAI text-embedding-3-small, which makes vectors of 1,536 numbers) and name it embed. See Providers and models.

2. Add a vector field to a table

In Data, open or create a table and add a field of type Vector (AI). In a definition it looks like this:
Then, for fast search on large tables, add an index on the field (Indexes → Add an index, method HNSW, distance Cosine).

How the vector stays right

  • On create, the record’s text is embedded and the vector saved with it.
  • On update, the record is embedded again only if one of the from fields is in the change. Other edits do not call the model.
  • A vector you send yourself is kept as given, so you can embed elsewhere if you prefer.
  • If the embedding model cannot answer, the write is refused with a 502 that says why, rather than saving a record that search could never find.
  • A model that returns a different number of dimensions than the field holds is refused with a message that names both.

Records that already exist

When you turn on Fill in automatically for a table that already has rows, those rows have no vector yet. In AI → Vector search, the table shows how many are missing and an Embed them button. From code:
Records come back closest first, each with a distance: smaller is closer. For cosine, 0 is identical and 2 is opposite; 1 - distance reads as a similarity. The search is part of reading the table. It follows the same access rule as listing, and the same filters work, so a person only ever finds records they may see:

What comes back

A record’s vector is a list of thousands of numbers, so it is left out of responses (list, get, create, update and search) unless you ask for it: ?select=embedding on a list, or ?vectors=true when getting one record.

Try it in Studio

AI → Vector search lists the table’s vector fields, how many records have a vector, and has a box to search by meaning and see the closest records.

Limits and good practice

  • Embed short, meaningful text (a title and a summary), not whole documents. Split long text into pieces and store one record per piece.
  • A vector index (hnsw) covers up to 2,000 dimensions. Larger vectors still search, without that index.
  • Use the same embedding model for the records and the queries. Changing the model means embedding everything again.
  • Search finds what is closest, not what is relevant: a nonsense query still returns the nearest records. Use max_distance to cut off weak matches.