# LanceDB v0.2.0 - Table of Contents

> Embedded LanceDB vector search for Elixir, powered by Rustler.

## Pages

- [LanceDB for Elixir](readme.md)
- [Changelog](changelog.md)
- [API guide](api.md)
- [Development and tests](development.md)
- [Indexes](indexes.md)
- [Installation and storage](installation.md)
- [Implementation notes](internals.md)
- [Native builds](native-builds.md)
- [Queries](queries.md)
- [Schemas and data types](schema.md)
- [Full-text and hybrid search](search-guide.md)
- [Supervised table caching](table-cache.md)
- [Table operations](tables.md)
- [Writes and streaming](writes.md)

## Modules

- [LanceDB](LanceDB.md): 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.

- [LanceDB.ArrowSchema](LanceDB.ArrowSchema.md): 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.
- [LanceDB.Batch](LanceDB.Batch.md): An immutable native Arrow record batch. Batches may be shared between processes.
- [LanceDB.Blob](LanceDB.Blob.md): Seekable handles for blob values stored in a table.
- [LanceDB.Blob.Reference](LanceDB.Blob.Reference.md): A blob write value referring to an external object's URI. Construct with Blob.reference/1.
- [LanceDB.Branch](LanceDB.Branch.md): Independent branch handles and branch management.
- [LanceDB.Connection](LanceDB.Connection.md): A connection to an embedded LanceDB database. Native resources are opaque.
- [LanceDB.Execution](LanceDB.Execution.md): 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.
- [LanceDB.Expr](LanceDB.Expr.md): Composable SQL expressions for filters, projections and writes.
- [LanceDB.FTS](LanceDB.FTS.md): 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`.
- [LanceDB.Field](LanceDB.Field.md): A schema field. Names stay strings; nested list items retain their full field definition.
- [LanceDB.History](LanceDB.History.md): Version history, snapshots, restore and version tags.
- [LanceDB.History.Version](LanceDB.History.Version.md): A historical table version; timestamp is the SDK UTC timestamp string and metadata retains string keys.
- [LanceDB.Index](LanceDB.Index.md): Index creation, inspection, prewarming and removal.
- [LanceDB.Index.Definition](LanceDB.Index.Definition.md): A reusable index configuration. Construct through LanceDB.Index.new/1.
- [LanceDB.Index.Description](LanceDB.Index.Description.md): An index description. Type names remain strings so newer SDK index families do not create atoms.
- [LanceDB.JSON](LanceDB.JSON.md): Explicit JSON values for `:json` schema fields, stored using Lance's native JSONB.
- [LanceDB.Job](LanceDB.Job.md): 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.

- [LanceDB.Maintenance](LanceDB.Maintenance.md): Table statistics, compaction, index optimization and version cleanup.
- [LanceDB.Maintenance.Compaction](LanceDB.Maintenance.Compaction.md): Measured changes made by file compaction; every count is reported by the SDK.
- [LanceDB.Metadata](LanceDB.Metadata.md): Schema and field metadata operations.
- [LanceDB.Query](LanceDB.Query.md): Pure, reusable queries. Construction validates options without accessing storage.
- [LanceDB.Reranker](LanceDB.Reranker.md): 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.
- [LanceDB.Schema](LanceDB.Schema.md): 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.
- [LanceDB.SchemaEvolution](LanceDB.SchemaEvolution.md): SQL and Expr transformations, column sources and snapshot backfills.
- [LanceDB.Source](LanceDB.Source.md): Explicit input for creation, writes, merges and column backfills.
- [LanceDB.Table](LanceDB.Table.md): 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.

- [LanceDB.TableCache](LanceDB.TableCache.md): Opt-in retention of table handles and supervised background index warming.
- [LanceDB.TableCache.Warming](LanceDB.TableCache.Warming.md): 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.

- [LanceDB.Telemetry](LanceDB.Telemetry.md): Operation timing events and opt-in native storage metrics.
- [LanceDB.Tokenizer](LanceDB.Tokenizer.md): Token inspection using explicit analyzers or a table index.
- [LanceDB.WriteResult](LanceDB.WriteResult.md): 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.

- Exceptions
  - [LanceDB.Error](LanceDB.Error.md): An operational failure. Match on `kind`, not on the human-readable message.

