Modules
Embedded LanceDB for Elixir. Use LanceDB.Connection for databases,
LanceDB.Table for rows and cache statistics, LanceDB.Query for reads,
and LanceDB.Index for indexes. LanceDB.History and LanceDB.Branch manage
versions and branches. LanceDB.Source describes write input.
A physical Arrow output description. Fields share the Schema/Field vocabulary, but may contain blob descriptors, unsupported external types, or field properties that the storage engine cannot persist. Inspection never silently drops them.
An immutable native Arrow record batch. Batches may be shared between processes.
Seekable handles for blob values stored in a table.
A blob write value referring to an external object's URI. Construct with Blob.reference/1.
Independent branch handles and branch management.
A connection to an embedded LanceDB database. Native resources are opaque.
An operational failure. Match on kind, not on the human-readable message.
Native operation admission. Limits apply across the BEAM VM: at most 64 active reads
and 16 writes by default. A read cursor holds its slot until completion or close;
read and write budgets are separate so batches can flow between them. Excess
operations fail immediately with Error.kind == :busy. Existing operations
finish if limits are lowered. Limits bound concurrency, not memory per operation.
Composable SQL expressions for filters, projections and writes.
Structured full-text queries for LanceDB.Query.full_text_search/3,
LanceDB.Query.hybrid_search/4, and reusable queries built with LanceDB.Query.text/2.
A schema field. Names stay strings; nested list items retain their full field definition.
Version history, snapshots, restore and version tags.
A historical table version; timestamp is the SDK UTC timestamp string and metadata retains string keys.
Index creation, inspection, prewarming and removal.
A reusable index configuration. Construct through LanceDB.Index.new/1.
An index description. Type names remain strings so newer SDK index families do not create atoms.
Explicit JSON values for :json schema fields, stored using Lance's native JSONB.
A shareable native index job. Jobs continue if the caller exits or the handle is garbage collected. Use cancel/1 explicitly; cancellation is best effort and does not undo a completed index. A job holds a write admission slot until it completes. Waiting with a deadline does not cancel the job.
Table statistics, compaction, index optimization and version cleanup.
Measured changes made by file compaction; every count is reported by the SDK.
Schema and field metadata operations.
Pure, reusable queries. Construction validates options without accessing storage.
Custom hybrid rerankers receive two lists of candidate maps: vector results
with normalized _distance (smaller is better), and text results with
normalized _score (larger is better). Both include _rowid, independently
of with_row_id, and the requested data columns or computed projections.
Reusable schemas contain Field structs, schema metadata, and tagged logical types.
Build one with Schema.new/2; LanceDB.Table.schema/1 returns the same representation.
Non-empty lists of field definitions are accepted as creation shorthand.
SQL and Expr transformations, column sources and snapshot backfills.
Explicit input for creation, writes, merges and column backfills.
Shareable table handles and row operations. Related domains expose history, branches, schema evolution, metadata, blobs and maintenance. Snapshots are independent read-only handles; writes never move other snapshots.
Opt-in retention of table handles and supervised background index warming.
The last observed warming attempt for an index retained by LanceDB.TableCache.
:completed records successful prewarming for version and index_uuid;
it does not promise that cache pages remain resident. Identity fields describe
the last successful attempt while another request is queued or running.
Failed attempts contain a LanceDB.Error and clear the completed identity.
Operation timing events and opt-in native storage metrics.
Token inspection using explicit analyzers or a table index.
A completed write. Unavailable counts and commit versions are nil; zero means
measured zero. Insertion reports confirmed commits independently of input chunk
size; other operations leave it nil when the SDK does not expose that count.