Enterprise job types: an index build runs as
reindex_ followed by the
algorithm, such as reindex_ivf_pq, reindex_btree or reindex_fts, and so
does folding new rows into an existing index. A create-only build, one that must
not replace an existing index, runs as create_ followed by the algorithm
instead; Python’s create_scalar_index and create_fts_index ask for that by
default. The name says which algorithm is building, not a separate feature.Triggering an incremental update
In the embedded library, you trigger an incremental indexing operation on updated data with theoptimize() method on a table. A deployment does this
for you and does not support optimize(), as described below.
Table optimization performs three maintenance operations:
- Compaction: merges small fragments into larger ones to improve read performance
- Pruning/Cleanup: removes files from versions older than a retention window (7 days by default) — see Cleanup for how retention works
- Index update: adds newly-ingested data to existing vector, scalar, and FTS indexes
- While indexes are being rebuilt, queries use brute force methods on unindexed rows, which may temporarily increase latency. If you can omit unindexed rows, set
fast_search=Trueto search only indexed data. This can return incomplete results while indexing catches up. - Use
index_stats()to view the number of unindexed rows. This will be zero when indexes are fully up-to-date. If you callwait_for_index(...), it polls the same status and can time out while continuous writes keep adding unindexed rows. - Rows below the deployment’s threshold stay unindexed until more arrive, so the count can stay above zero without further writes.
FMindexes are not updated in the background.
LANCEDB_LOG=warn to surface this log if your logger hides warnings by default.
Index maintenance jobs
Two further Enterprise job types keep an index correct as the rows underneath it move, rather than adding new rows to it:
See Advanced Conflict Resolution
for why
index_remap exists as a separate, deferred job rather than
happening synchronously inside every compaction.
What to read next
Distributed Indexing
How an index build itself scales across the jobs fleet.
GPU Indexing
Building a vector index faster with GPU acceleration.