From 43590363c4b983ef5593f824f1281211457ad5c1 Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Thu, 11 Jun 2026 20:41:17 +0000 Subject: [PATCH 1/2] docs: document new IndexConfig metadata fields from list_indices --- docs/indexing/vector-index.mdx | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/docs/indexing/vector-index.mdx b/docs/indexing/vector-index.mdx index a459085..bd210ea 100644 --- a/docs/indexing/vector-index.mdx +++ b/docs/indexing/vector-index.mdx @@ -344,6 +344,19 @@ Navigate to your table page - the "Index" column shows index status. It remains Use `list_indices()` and `index_stats()` to check index status. **By default**, the index name is formed by appending `_idx` to the column name (e.g., a `keywords_embeddings` column produces `keywords_embeddings_idx`). Note that `list_indices()` only returns information after the index is fully built. To wait until all data is fully indexed, you can specify the `wait_timeout` parameter on `create_index()` or call `wait_for_index()` on the table. + +Each entry returned by `list_indices()` also carries detailed metadata you can inspect without a follow-up call to `index_stats()`: + +- `num_indexed_rows` / `numIndexedRows` and `num_unindexed_rows` / `numUnindexedRows` — coverage of the index over the table +- `size_bytes` / `sizeBytes` — total size of the index files on disk +- `num_segments` / `numSegments` and `index_version` / `indexVersion` — physical layout and on-disk format version +- `created_at` / `createdAt` — index creation time (milliseconds since the Unix epoch in Node.js) +- `index_uuid` / `indexUuid` and `type_url` / `typeUrl` — internal identifiers for the index segment +- `index_details` / `indexDetails` — type-specific JSON details (for example, IVF partition counts or quantization settings) + +These fields are populated for local and embedded tables. On LanceDB Enterprise remote tables they are returned as `None` / `undefined` until the server response surfaces them. + + {VectorIndexCheckStatus} From 338eae01e5f10bf68e41981deea1a9296cd8e988 Mon Sep 17 00:00:00 2001 From: prrao87 <35005448+prrao87@users.noreply.github.com> Date: Fri, 12 Jun 2026 14:48:41 -0400 Subject: [PATCH 2/2] docs: tidy index-status section and IndexConfig metadata - Present new list_indices() metadata fields as a compact table instead of a doubled snake/camelCase bullet list - Collapse the "Option 1/Option 2" subheadings into one flowing "Check Index Status" section and name the LanceDB Enterprise UI - Correct the UI behavior: the "Index" column shows an "in progress" label while building (verified against the sophon UI), not blank - Drop the unsupported "few minutes for 1M vectors" perf claim - Promote "Custom Index Names" to a top-level section (it's a creation-time concern, not a child of "Use the API") Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/indexing/vector-index.mdx | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/docs/indexing/vector-index.mdx b/docs/indexing/vector-index.mdx index bd210ea..3eaacdc 100644 --- a/docs/indexing/vector-index.mdx +++ b/docs/indexing/vector-index.mdx @@ -333,27 +333,25 @@ Binary vectors are useful for hash-based retrieval, fingerprinting, or any scena ## Check Index Status -Vector index creation is fast - typically a few minutes for 1 million vectors with 1536 dimensions. You can check index status in two ways: +Vector index creation runs in the background and may take some time to complete. While it is ongoing, you can check its status either programmatically through the API or from the **LanceDB Enterprise UI**. -### Option 1: Check the UI +In the LanceDB Enterprise UI, navigate to your table page - the "Index" column reflects each column's index status: it is blank when no index exists, shows an "in progress" label while the index is being built, and shows the index type once the build completes. -Navigate to your table page - the "Index" column shows index status. It remains blank if no index exists or if creation is in progress. - -### Option 2: Use the API - -Use `list_indices()` and `index_stats()` to check index status. **By default**, the index name is formed by appending `_idx` to the column name (e.g., a `keywords_embeddings` column produces `keywords_embeddings_idx`). Note that `list_indices()` only returns information after the index is fully built. +Programmatically, use `list_indices()` and `index_stats()`. **By default**, the index name is formed by appending `_idx` to the column name (e.g., a `keywords_embeddings` column produces `keywords_embeddings_idx`). Note that `list_indices()` only returns information after the index is fully built. To wait until all data is fully indexed, you can specify the `wait_timeout` parameter on `create_index()` or call `wait_for_index()` on the table. - -Each entry returned by `list_indices()` also carries detailed metadata you can inspect without a follow-up call to `index_stats()`: +Each entry returned by `list_indices()` also carries detailed per-index metadata, so you can inspect an index without a follow-up `index_stats()` call. Node.js exposes the same fields in camelCase (`num_indexed_rows` → `numIndexedRows`): -- `num_indexed_rows` / `numIndexedRows` and `num_unindexed_rows` / `numUnindexedRows` — coverage of the index over the table -- `size_bytes` / `sizeBytes` — total size of the index files on disk -- `num_segments` / `numSegments` and `index_version` / `indexVersion` — physical layout and on-disk format version -- `created_at` / `createdAt` — index creation time (milliseconds since the Unix epoch in Node.js) -- `index_uuid` / `indexUuid` and `type_url` / `typeUrl` — internal identifiers for the index segment -- `index_details` / `indexDetails` — type-specific JSON details (for example, IVF partition counts or quantization settings) +| Field | What it tells you | +| :--- | :--- | +| `num_indexed_rows`, `num_unindexed_rows` | Index coverage over the table | +| `size_bytes` | Total size of the index files on disk | +| `num_segments`, `index_version` | On-disk layout and format version | +| `created_at` | Creation time (ms since the Unix epoch in Node.js) | +| `index_uuid`, `type_url` | Internal identifiers for the index segment | +| `index_details` | Type-specific details (e.g. IVF partition counts or quantization settings) | + These fields are populated for local and embedded tables. On LanceDB Enterprise remote tables they are returned as `None` / `undefined` until the server response surfaces them. @@ -363,7 +361,7 @@ These fields are populated for local and embedded tables. On LanceDB Enterprise -#### Custom Index Names +## Custom Index Names The `{column}_idx` suffix is a default convention, not the only supported naming path. Pass `name=...` to `create_index()` to override it — useful when you want to manage multiple indexes on the same column (for example, side-by-side `IVF_PQ` and `IVF_HNSW_SQ` builds) or when you script index replacement by name. Once set, `list_indices()`, `index_stats(name)`, and `wait_for_index([name])` all reference the custom name.