You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Read which embedding identity a vector store's index was written with: IVectorStore.GetRecordedIdentityAsync().
It returns the recorded provider, model, dimension and revision from the store itself, so a fresh instance — a restarted
process, a copied data folder, a restored backup — answers too, and a consumer no longer needs a side file to know
whether the index matches its configured model. The PostgreSQL, plain SQLite and Qdrant (Fixed) stores return the
record they already keep. SQLiteVecVectorStore now records the identity of its latest vector write (single or batch)
in the same fluxindex_vector_identity table (row vec0), and ClearAsync removes it; a switched model is still given
its own fingerprinted table, not refused. The in-memory store and stores that record nothing return null, which is also
the interface default.
Fixed
Large keyword-index batches on SQLite are fast again. Since 0.96.0 the SQLite keyword index wrote chunks, postings
and filter rows as multi-row VALUES statements with up to 8,000 named parameters each, and SQLite resolves a
parameter name by scanning the statement's names, so binding cost the square of the parameter count: indexing 10,000
short documents in one batch (as IndexDocumentsBatchAsync does) took 12–28 s where 0.95.0 took 2 s. Rows now go
through one prepared statement rebound per row, and existing terms are looked up with one JSON array parameter
(json_each) instead of one parameter per term. The same batch takes about 1.5 s; one with a large vocabulary
(117,000 distinct terms) went from 4.7 s to 2.1 s. PostgreSQL is unchanged (it sends arrays).