--- title: "FAQ" slug: "dev-vector-search-troubleshooting-faq" description: "Get quick answers on VAST Vector Search, including indexing, querying, and data protection. Learn how to optimize your vector database experience." updated: 2026-10-30T18:19:01Z published: 2026-10-30T18:19:01Z canonical: "docs.vastdata.com/dev-vector-search-troubleshooting-faq" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.vastdata.com/llms.txt > Use this file to discover all available pages before exploring further. # FAQ *Applies to VAST Cluster 5.5.* Short answers to common questions about VAST Vector Search, each with a link to the page that has the detail. ## Basics **Is this a separate vector database, like Pinecone?** No. A vector is a column type on VAST DataBase: you create tables with SQL through the VAST Query Engine or with the Python SDK, and search them with SQL. See the [overview](/develop/docs/dev-vector-search-overview). **Must I use ADBC?** For searches that use the vector index, yes: they run in the VAST Query Engine, which you reach with the ADBC driver, and the Python SDK's `vector_search()` uses the same driver. See [ADBC](/develop/docs/dev-vector-search-integrations-adbc). **Can Trino or Spark read a vector column?** Trino and Spark have no type for `VECTOR` (see [supported data types](/docs-5-5/docs/supported-data-types)), and their connectors don't use the vector index. Search through the VAST Query Engine. See [limits](/develop/docs/dev-vector-search-reference-limits). ## The index **Can I index two embedding columns in one table?** Not in 5.5: only one vector column per table can be indexed. Use one table per embedding model; see [design a vector table](/develop/docs/dev-vector-search-guides-table-design). **Can I add an index to an existing table later?** No. You define the index when you create the table, and you can't remove it afterwards. To index existing data, copy the rows into a new table that has one ([move vectors into an indexed table](/develop/docs/dev-vector-search-guides-migrate)). **Do tables created before VAST Cluster 5.5 get an index when the cluster is upgraded?** No. An index can't be added to an existing table, including one created before 5.5. Copy the rows into a new indexed table ([move vectors into an indexed table](/develop/docs/dev-vector-search-guides-migrate#from-a-table-without-an-index)). **What quantization do I get if I don't choose one?** `scalar_8bit` for both clustering and search, through SQL and the Python SDK. See [quantization](/develop/docs/dev-vector-search-guides-quantization). **Can I store vectors as 16-bit floats?** Yes: indexed tables accept `VECTOR(FLOAT16, <d>)`. Values outside the `FLOAT16` range are rejected on insert ([errors](/develop/docs/dev-vector-search-troubleshooting-errors#inserting-rows)). ## Searching **Why `ORDER BY dist ASC` for inner product, where bigger is more similar?** The inner-product function is `array_negative_inner_product`, which flips the sign, so smaller is more similar for every metric. See [query design](/develop/docs/dev-vector-search-guides-query-design#metric-and-function). **Can I use the Python SDK's `vector_search()` on an inner-product (`ip`) table?** Not in 5.5: on an `ip` table it returns the least similar rows first. Search `ip` tables with SQL; see [Python SDK](/develop/docs/dev-vector-search-integrations-python-sdk#inner-product-indexes-search-with-sql). **I copied a search from a webinar that uses `cosine_similarity` and `ORDER BY ... DESC`. Why does it fail, or run slowly?** The Query Engine has no `cosine_similarity` function, so the query as written fails with `Catalog Error: Scalar Function with name cosine_similarity does not exist!`. If you rewrite it with `array_cosine_similarity(...)` and `ORDER BY ... DESC`, it runs, but as a full scan of the table: the descending order doesn't match the shape the index needs. It returns the exact nearest rows, so its results can differ from an index search, and on a large table it's much slower (about twice as long on a test table of 1.2 million rows). Use `array_cosine_distance(...)` with `ORDER BY ... ASC LIMIT k`; see [query design](/develop/docs/dev-vector-search-guides-query-design#queries-that-dont-use-the-index). **Can I tell from `EXPLAIN` whether a query used the index?** Yes. On a vector-indexed table, the plan of a search that uses the index contains a `VAST_VEC_INDEX_SCAN` step; a search that doesn't shows only a plain `VAST_SCAN` of the table. See [query design](/develop/docs/dev-vector-search-guides-query-design#queries-that-dont-use-the-index). The cluster's TopN metrics show it too ([performance](/develop/docs/dev-vector-search-operations-performance#what-your-platform-team-can-see)). ## Data protection **Can I search a table through a snapshot?** Yes. Through a snapshot, SQL searches, the SDK's `select()` and `vector_search()` return the rows as they were when the snapshot was taken ([setup](/develop/docs/dev-vector-search-operations-setup#snapshots-and-replication)). **Can vector-indexed tables be replicated?** No. See [limits](/develop/docs/dev-database-reference-limits#combining-table-structures). ## See also - [Troubleshooting](/develop/docs/dev-vector-search-troubleshooting-index) and the [error index](/develop/docs/dev-vector-search-troubleshooting-errors). - [VAST DataBase FAQ](/develop/docs/dev-database-troubleshooting-faq).