vectordb / Exports / LocalTable Class: LocalTable\<T> A LanceDB Table is the collection of Records. Each Record has one or more vector fields. Type parameters Name Type T number[] Implements Table\<T> Table of contents Constructors constructor Properties _embeddings _isElectron _name _options _tbl where Accessors name schema Methods add addColumns alterColumns checkElectron cleanupOldVersions compactFiles countRows createIndex createScalarIndex delete dropColumns filter getSchema indexStats listIndices mergeInsert overwrite search update withMiddleware Constructors constructor • new LocalTable\<T>(tbl, name, options) Type parameters Name Type T number[] Parameters Name Type tbl any name string options ConnectionOptions Defined in index.ts:892 • new LocalTable\<T>(tbl, name, options, embeddings) Type parameters Name Type T number[] Parameters Name Type Description tbl any name string options ConnectionOptions embeddings EmbeddingFunction\<T> An embedding function to use when interacting with this table Defined in index.ts:899 Properties _embeddings • Private Optional Readonly _embeddings: EmbeddingFunction\<T> Defined in index.ts:889 _isElectron • Private Readonly _isElectron: boolean Defined in index.ts:888 _name • Private Readonly _name: string Defined in index.ts:887 _options • Private Readonly _options: () => ConnectionOptions Type declaration ▸ (): ConnectionOptions Returns ConnectionOptions Defined in index.ts:890 _tbl • Private _tbl: any Defined in index.ts:886 where • where: (value: string) => Query\<T> Type declaration ▸ (value): Query\<T> Creates a filter query to find all rows matching the specified criteria Parameters Name Type Description value string The filter criteria (like SQL where clause syntax) Returns Query\<T> Defined in index.ts:938 Accessors name • get name(): string Returns string Implementation of Table.name Defined in index.ts:918 schema • get schema(): Promise\<Schema\<any>> Returns Promise\<Schema\<any>> Implementation of Table.schema Defined in index.ts:1171 Methods add ▸ add(data): Promise\<number> Insert records into this Table. Parameters Name Type Description data Table\<any> | Record\<string, unknown>[] Records to be inserted into the Table Returns Promise\<number> The number of rows added to the table Implementation of Table.add Defined in index.ts:946 addColumns ▸ addColumns(newColumnTransforms): Promise\<void> Add new columns with defined values. Parameters Name Type Description newColumnTransforms { name: string ; valueSql: string }[] pairs of column names and the SQL expression to use to calculate the value of the new column. These expressions will be evaluated for each row in the table, and can reference existing columns in the table. Returns Promise\<void> Implementation of Table.addColumns Defined in index.ts:1195 alterColumns ▸ alterColumns(columnAlterations): Promise\<void> Alter the name or nullability of columns. Parameters Name Type Description columnAlterations ColumnAlteration[] One or more alterations to apply to columns. Returns Promise\<void> Implementation of Table.alterColumns Defined in index.ts:1201 checkElectron ▸ Private checkElectron(): boolean Returns boolean Defined in index.ts:1183 cleanupOldVersions ▸ cleanupOldVersions(olderThan?, deleteUnverified?): Promise\<CleanupStats> Clean up old versions of the table, freeing disk space. Parameters Name Type Description olderThan? number The minimum age in minutes of the versions to delete. If not provided, defaults to two weeks. deleteUnverified? boolean Because they may be part of an in-progress transaction, uncommitted files newer than 7 days old are not deleted by default. This means that failed transactions can leave around data that takes up disk space for up to 7 days. You can override this safety mechanism by setting this option to true, only if you promise there are no in progress writes while you run this operation. Failure to uphold this promise can lead to corrupted tables. Returns Promise\<CleanupStats> Defined in index.ts:1130 compactFiles ▸ compactFiles(options?): Promise\<CompactionMetrics> Run the compaction process on the table. This can be run after making several small appends to optimize the table for faster reads. Parameters Name Type Description options? CompactionOptions Advanced options configuring compaction. In most cases, you can omit this arguments, as the default options are sensible for most tables. Returns Promise\<CompactionMetrics> Metrics about the compaction operation. Defined in index.ts:1153 countRows ▸ countRows(filter?): Promise\<number> Returns the number of rows in this table. Parameters Name Type filter? string Returns Promise\<number> Implementation of Table.countRows Defined in index.ts:1021 createIndex ▸ createIndex(indexParams): Promise\<any> Create an ANN index on this Table vector index. Parameters Name Type Description indexParams IvfPQIndexConfig The parameters of this Index, Returns Promise\<any> See VectorIndexParams. Implementation of Table.createIndex Defined in index.ts:1003 createScalarIndex ▸ createScalarIndex(column, replace?): Promise\<void> Create a scalar index on this Table for the given column Parameters Name Type Description column string The column to index replace? boolean If false, fail if an index already exists on the column it is always set to true for remote connections Scalar indices, like vector indices, can be used to speed up scans. A scalar index can speed up scans that contain filter expressions on the indexed column. For example, the following scan will be faster if the column my_col has a scalar index: ts const con = await lancedb.connect('./.lancedb'); const table = await con.openTable('images'); const results = await table.where('my_col = 7').execute(); Scalar indices can also speed up scans containing a vector search and a prefilter: ts const con = await lancedb.connect('././lancedb'); const table = await con.openTable('images'); const results = await table.search([1.0, 2.0]).where('my_col != 7').prefilter(true); Scalar indices can only speed up scans for basic filters using equality, comparison, range (e.g. my_col BETWEEN 0 AND 100), and set membership (e.g. my_col IN (0, 1, 2)) Scalar indices can be used if the filter contains multiple indexed columns and the filter criteria are AND'd or OR'd together (e.g. my_col < 0 AND other_col> 100) Scalar indices may be used if the filter contains non-indexed columns but, depending on the structure of the filter, they may not be usable. For example, if the column not_indexed does not have a scalar index then the filter my_col = 0 OR not_indexed = 1 will not be able to use any scalar index on my_col. Returns Promise\<void> Examples const con = await lancedb.connect('././lancedb') const table = await con.openTable('images') await table.createScalarIndex('my_col') Implementation of Table.createScalarIndex Defined in index.ts:1011 delete ▸ delete(filter): Promise\<void> Delete rows from this table. Parameters Name Type Description filter string A filter in the same format used by a sql WHERE clause. Returns Promise\<void> Implementation of Table.delete Defined in index.ts:1030 dropColumns ▸ dropColumns(columnNames): Promise\<void> Drop one or more columns from the dataset This is a metadata-only operation and does not remove the data from the underlying storage. In order to remove the data, you must subsequently call compact_files to rewrite the data without the removed columns and then call cleanup_files to remove the old files. Parameters Name Type Description columnNames string[] The names of the columns to drop. These can be nested column references (e.g. "a.b.c") or top-level column names (e.g. "a"). Returns Promise\<void> Implementation of Table.dropColumns Defined in index.ts:1205 filter ▸ filter(value): Query\<T> Creates a filter query to find all rows matching the specified criteria Parameters Name Type Description value string The filter criteria (like SQL where clause syntax) Returns Query\<T> Implementation of Table.filter Defined in index.ts:934 getSchema ▸ Private getSchema(): Promise\<Schema\<any>> Returns Promise\<Schema\<any>> Defined in index.ts:1176 indexStats ▸ indexStats(indexName): Promise\<IndexStats> Get statistics about an index. Parameters Name Type indexName string Returns Promise\<IndexStats> Implementation of Table.indexStats Defined in index.ts:1167 listIndices ▸ listIndices(): Promise\<VectorIndex[]> List the indicies on this table. Returns Promise\<VectorIndex[]> Implementation of Table.listIndices Defined in index.ts:1163 mergeInsert ▸ mergeInsert(on, data, args): Promise\<void> Runs a "merge insert" operation on the table This operation can add rows, update rows, and remove rows all in a single transaction. It is a very generic tool that can be used to create behaviors like "insert if not exists", "update or insert (i.e. upsert)", or even replace a portion of existing data with new data (e.g. replace all data where month="january") The merge insert operation works by combining new data from a source table with existing data in a target table by using a join. There are three categories of records. "Matched" records are records that exist in both the source table and the target table. "Not matched" records exist only in the source table (e.g. these are new data) "Not matched by source" records exist only in the target table (this is old data) The MergeInsertArgs can be used to customize what should happen for each category of data. Please note that the data may appear to be reordered as part of this operation. This is because updated rows will be deleted from the dataset and then reinserted at the end with the new values. Parameters Name Type Description on string a column to join on. This is how records from the source table and target table are matched. data Table\<any> | Record\<string, unknown>[] the new data to insert args MergeInsertArgs parameters controlling how the operation should behave Returns Promise\<void> Implementation of Table.mergeInsert Defined in index.ts:1065 overwrite ▸ overwrite(data): Promise\<number> Insert records into this Table, replacing its contents. Parameters Name Type Description data Table\<any> | Record\<string, unknown>[] Records to be inserted into the Table Returns Promise\<number> The number of rows added to the table Implementation of Table.overwrite Defined in index.ts:977 search ▸ search(query): Query\<T> Creates a search query to find the nearest neighbors of the given search term Parameters Name Type Description query T The query search term Returns Query\<T> Implementation of Table.search Defined in index.ts:926 update ▸ update(args): Promise\<void> Update rows in this table. Parameters Name Type Description args UpdateArgs | UpdateSqlArgs see UpdateArgs and UpdateSqlArgs for more details Returns Promise\<void> Implementation of Table.update Defined in index.ts:1043 withMiddleware ▸ withMiddleware(middleware): Table\<T> Instrument the behavior of this Table with middleware. The middleware will be called in the order they are added. Currently this functionality is only supported for remote tables. Parameters Name Type middleware HttpMiddleware Returns Table\<T> this Table instrumented by the passed middleware Implementation of Table.withMiddleware Defined in index.ts:1209