IndexSpec. Two index types,
chained fluently.
Declare both on a table to enable hybrid search. Scalar columns
need no index; filter them with SQL.
Full-text index: fts(column)
Builds a BM25 inverted index over a text column, powering bm25_search, token_match,
and the hybrid / pushdown-filter paths. Call fts once per text column you want to search.
Vector index: vector(column, dim, metric)
Builds an IVF (inverted-file) vector index for kNN.
Partitioning is automatic. The engine derives the IVF partition (centroid) count
from the data when the index is built, and it calibrates probe width and rerank budget
per table and per
k at query time. There are no partition or probe knobs to set, and
the same declaration works from thousands of rows to hundreds of millions.
You can index multiple text columns (call
fts per column) and multiple vector columns.
Scalar columns need no index declaration. Filter them with SQL (query_sql) or as
a pushdown pre-filter on vector search (see Search).