mirror of
https://github.com/lancedb/lancedb.git
synced 2026-01-10 13:52:58 +00:00
471 lines
11 KiB
Markdown
471 lines
11 KiB
Markdown
[vectordb](../README.md) / [Exports](../modules.md) / RemoteTable
|
|
|
|
# Class: RemoteTable\<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`](../interfaces/Table.md)\<`T`\>
|
|
|
|
## Table of contents
|
|
|
|
### Constructors
|
|
|
|
- [constructor](RemoteTable.md#constructor)
|
|
|
|
### Properties
|
|
|
|
- [\_client](RemoteTable.md#_client)
|
|
- [\_embeddings](RemoteTable.md#_embeddings)
|
|
- [\_name](RemoteTable.md#_name)
|
|
|
|
### Accessors
|
|
|
|
- [name](RemoteTable.md#name)
|
|
- [schema](RemoteTable.md#schema)
|
|
|
|
### Methods
|
|
|
|
- [add](RemoteTable.md#add)
|
|
- [countRows](RemoteTable.md#countrows)
|
|
- [createIndex](RemoteTable.md#createindex)
|
|
- [createScalarIndex](RemoteTable.md#createscalarindex)
|
|
- [delete](RemoteTable.md#delete)
|
|
- [indexStats](RemoteTable.md#indexstats)
|
|
- [listIndices](RemoteTable.md#listindices)
|
|
- [overwrite](RemoteTable.md#overwrite)
|
|
- [search](RemoteTable.md#search)
|
|
- [update](RemoteTable.md#update)
|
|
|
|
## Constructors
|
|
|
|
### constructor
|
|
|
|
• **new RemoteTable**\<`T`\>(`client`, `name`)
|
|
|
|
#### Type parameters
|
|
|
|
| Name | Type |
|
|
| :------ | :------ |
|
|
| `T` | `number`[] |
|
|
|
|
#### Parameters
|
|
|
|
| Name | Type |
|
|
| :------ | :------ |
|
|
| `client` | `HttpLancedbClient` |
|
|
| `name` | `string` |
|
|
|
|
#### Defined in
|
|
|
|
[remote/index.ts:234](https://github.com/lancedb/lancedb/blob/5228ca4/node/src/remote/index.ts#L234)
|
|
|
|
• **new RemoteTable**\<`T`\>(`client`, `name`, `embeddings`)
|
|
|
|
#### Type parameters
|
|
|
|
| Name | Type |
|
|
| :------ | :------ |
|
|
| `T` | `number`[] |
|
|
|
|
#### Parameters
|
|
|
|
| Name | Type |
|
|
| :------ | :------ |
|
|
| `client` | `HttpLancedbClient` |
|
|
| `name` | `string` |
|
|
| `embeddings` | [`EmbeddingFunction`](../interfaces/EmbeddingFunction.md)\<`T`\> |
|
|
|
|
#### Defined in
|
|
|
|
[remote/index.ts:235](https://github.com/lancedb/lancedb/blob/5228ca4/node/src/remote/index.ts#L235)
|
|
|
|
## Properties
|
|
|
|
### \_client
|
|
|
|
• `Private` `Readonly` **\_client**: `HttpLancedbClient`
|
|
|
|
#### Defined in
|
|
|
|
[remote/index.ts:230](https://github.com/lancedb/lancedb/blob/5228ca4/node/src/remote/index.ts#L230)
|
|
|
|
___
|
|
|
|
### \_embeddings
|
|
|
|
• `Private` `Optional` `Readonly` **\_embeddings**: [`EmbeddingFunction`](../interfaces/EmbeddingFunction.md)\<`T`\>
|
|
|
|
#### Defined in
|
|
|
|
[remote/index.ts:231](https://github.com/lancedb/lancedb/blob/5228ca4/node/src/remote/index.ts#L231)
|
|
|
|
___
|
|
|
|
### \_name
|
|
|
|
• `Private` `Readonly` **\_name**: `string`
|
|
|
|
#### Defined in
|
|
|
|
[remote/index.ts:232](https://github.com/lancedb/lancedb/blob/5228ca4/node/src/remote/index.ts#L232)
|
|
|
|
## Accessors
|
|
|
|
### name
|
|
|
|
• `get` **name**(): `string`
|
|
|
|
#### Returns
|
|
|
|
`string`
|
|
|
|
#### Implementation of
|
|
|
|
[Table](../interfaces/Table.md).[name](../interfaces/Table.md#name)
|
|
|
|
#### Defined in
|
|
|
|
[remote/index.ts:250](https://github.com/lancedb/lancedb/blob/5228ca4/node/src/remote/index.ts#L250)
|
|
|
|
___
|
|
|
|
### schema
|
|
|
|
• `get` **schema**(): `Promise`\<`any`\>
|
|
|
|
#### Returns
|
|
|
|
`Promise`\<`any`\>
|
|
|
|
#### Implementation of
|
|
|
|
[Table](../interfaces/Table.md).[schema](../interfaces/Table.md#schema)
|
|
|
|
#### Defined in
|
|
|
|
[remote/index.ts:254](https://github.com/lancedb/lancedb/blob/5228ca4/node/src/remote/index.ts#L254)
|
|
|
|
## 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](../interfaces/Table.md).[add](../interfaces/Table.md#add)
|
|
|
|
#### Defined in
|
|
|
|
[remote/index.ts:273](https://github.com/lancedb/lancedb/blob/5228ca4/node/src/remote/index.ts#L273)
|
|
|
|
___
|
|
|
|
### countRows
|
|
|
|
▸ **countRows**(): `Promise`\<`number`\>
|
|
|
|
Returns the number of rows in this table.
|
|
|
|
#### Returns
|
|
|
|
`Promise`\<`number`\>
|
|
|
|
#### Implementation of
|
|
|
|
[Table](../interfaces/Table.md).[countRows](../interfaces/Table.md#countrows)
|
|
|
|
#### Defined in
|
|
|
|
[remote/index.ts:372](https://github.com/lancedb/lancedb/blob/5228ca4/node/src/remote/index.ts#L372)
|
|
|
|
___
|
|
|
|
### createIndex
|
|
|
|
▸ **createIndex**(`indexParams`): `Promise`\<`void`\>
|
|
|
|
Create an ANN index on this Table vector index.
|
|
|
|
#### Parameters
|
|
|
|
| Name | Type | Description |
|
|
| :------ | :------ | :------ |
|
|
| `indexParams` | [`IvfPQIndexConfig`](../interfaces/IvfPQIndexConfig.md) | The parameters of this Index, |
|
|
|
|
#### Returns
|
|
|
|
`Promise`\<`void`\>
|
|
|
|
**`See`**
|
|
|
|
VectorIndexParams.
|
|
|
|
#### Implementation of
|
|
|
|
[Table](../interfaces/Table.md).[createIndex](../interfaces/Table.md#createindex)
|
|
|
|
#### Defined in
|
|
|
|
[remote/index.ts:326](https://github.com/lancedb/lancedb/blob/5228ca4/node/src/remote/index.ts#L326)
|
|
|
|
___
|
|
|
|
### 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 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`**
|
|
|
|
```ts
|
|
const con = await lancedb.connect('././lancedb')
|
|
const table = await con.openTable('images')
|
|
await table.createScalarIndex('my_col')
|
|
```
|
|
|
|
#### Implementation of
|
|
|
|
[Table](../interfaces/Table.md).[createScalarIndex](../interfaces/Table.md#createscalarindex)
|
|
|
|
#### Defined in
|
|
|
|
[remote/index.ts:368](https://github.com/lancedb/lancedb/blob/5228ca4/node/src/remote/index.ts#L368)
|
|
|
|
___
|
|
|
|
### delete
|
|
|
|
▸ **delete**(`filter`): `Promise`\<`void`\>
|
|
|
|
Delete rows from this table.
|
|
|
|
This can be used to delete a single row, many rows, all rows, or
|
|
sometimes no rows (if your predicate matches nothing).
|
|
|
|
#### Parameters
|
|
|
|
| Name | Type | Description |
|
|
| :------ | :------ | :------ |
|
|
| `filter` | `string` | A filter in the same format used by a sql WHERE clause. The filter must not be empty. |
|
|
|
|
#### Returns
|
|
|
|
`Promise`\<`void`\>
|
|
|
|
**`Examples`**
|
|
|
|
```ts
|
|
const con = await lancedb.connect("./.lancedb")
|
|
const data = [
|
|
{id: 1, vector: [1, 2]},
|
|
{id: 2, vector: [3, 4]},
|
|
{id: 3, vector: [5, 6]},
|
|
];
|
|
const tbl = await con.createTable("my_table", data)
|
|
await tbl.delete("id = 2")
|
|
await tbl.countRows() // Returns 2
|
|
```
|
|
|
|
If you have a list of values to delete, you can combine them into a
|
|
stringified list and use the `IN` operator:
|
|
|
|
```ts
|
|
const to_remove = [1, 5];
|
|
await tbl.delete(`id IN (${to_remove.join(",")})`)
|
|
await tbl.countRows() // Returns 1
|
|
```
|
|
|
|
#### Implementation of
|
|
|
|
[Table](../interfaces/Table.md).[delete](../interfaces/Table.md#delete)
|
|
|
|
#### Defined in
|
|
|
|
[remote/index.ts:377](https://github.com/lancedb/lancedb/blob/5228ca4/node/src/remote/index.ts#L377)
|
|
|
|
___
|
|
|
|
### indexStats
|
|
|
|
▸ **indexStats**(`indexUuid`): `Promise`\<[`IndexStats`](../interfaces/IndexStats.md)\>
|
|
|
|
Get statistics about an index.
|
|
|
|
#### Parameters
|
|
|
|
| Name | Type |
|
|
| :------ | :------ |
|
|
| `indexUuid` | `string` |
|
|
|
|
#### Returns
|
|
|
|
`Promise`\<[`IndexStats`](../interfaces/IndexStats.md)\>
|
|
|
|
#### Implementation of
|
|
|
|
[Table](../interfaces/Table.md).[indexStats](../interfaces/Table.md#indexstats)
|
|
|
|
#### Defined in
|
|
|
|
[remote/index.ts:414](https://github.com/lancedb/lancedb/blob/5228ca4/node/src/remote/index.ts#L414)
|
|
|
|
___
|
|
|
|
### listIndices
|
|
|
|
▸ **listIndices**(): `Promise`\<[`VectorIndex`](../interfaces/VectorIndex.md)[]\>
|
|
|
|
List the indicies on this table.
|
|
|
|
#### Returns
|
|
|
|
`Promise`\<[`VectorIndex`](../interfaces/VectorIndex.md)[]\>
|
|
|
|
#### Implementation of
|
|
|
|
[Table](../interfaces/Table.md).[listIndices](../interfaces/Table.md#listindices)
|
|
|
|
#### Defined in
|
|
|
|
[remote/index.ts:403](https://github.com/lancedb/lancedb/blob/5228ca4/node/src/remote/index.ts#L403)
|
|
|
|
___
|
|
|
|
### 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](../interfaces/Table.md).[overwrite](../interfaces/Table.md#overwrite)
|
|
|
|
#### Defined in
|
|
|
|
[remote/index.ts:300](https://github.com/lancedb/lancedb/blob/5228ca4/node/src/remote/index.ts#L300)
|
|
|
|
___
|
|
|
|
### search
|
|
|
|
▸ **search**(`query`): [`Query`](Query.md)\<`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`](Query.md)\<`T`\>
|
|
|
|
#### Implementation of
|
|
|
|
[Table](../interfaces/Table.md).[search](../interfaces/Table.md#search)
|
|
|
|
#### Defined in
|
|
|
|
[remote/index.ts:269](https://github.com/lancedb/lancedb/blob/5228ca4/node/src/remote/index.ts#L269)
|
|
|
|
___
|
|
|
|
### update
|
|
|
|
▸ **update**(`args`): `Promise`\<`void`\>
|
|
|
|
Update rows in this table.
|
|
|
|
This can be used to update a single row, many rows, all rows, or
|
|
sometimes no rows (if your predicate matches nothing).
|
|
|
|
#### Parameters
|
|
|
|
| Name | Type | Description |
|
|
| :------ | :------ | :------ |
|
|
| `args` | [`UpdateArgs`](../interfaces/UpdateArgs.md) \| [`UpdateSqlArgs`](../interfaces/UpdateSqlArgs.md) | see [UpdateArgs](../interfaces/UpdateArgs.md) and [UpdateSqlArgs](../interfaces/UpdateSqlArgs.md) for more details |
|
|
|
|
#### Returns
|
|
|
|
`Promise`\<`void`\>
|
|
|
|
**`Examples`**
|
|
|
|
```ts
|
|
const con = await lancedb.connect("./.lancedb")
|
|
const data = [
|
|
{id: 1, vector: [3, 3], name: 'Ye'},
|
|
{id: 2, vector: [4, 4], name: 'Mike'},
|
|
];
|
|
const tbl = await con.createTable("my_table", data)
|
|
|
|
await tbl.update({
|
|
where: "id = 2",
|
|
values: { vector: [2, 2], name: "Michael" },
|
|
})
|
|
|
|
let results = await tbl.search([1, 1]).execute();
|
|
// Returns [
|
|
// {id: 2, vector: [2, 2], name: 'Michael'}
|
|
// {id: 1, vector: [3, 3], name: 'Ye'}
|
|
// ]
|
|
```
|
|
|
|
#### Implementation of
|
|
|
|
[Table](../interfaces/Table.md).[update](../interfaces/Table.md#update)
|
|
|
|
#### Defined in
|
|
|
|
[remote/index.ts:383](https://github.com/lancedb/lancedb/blob/5228ca4/node/src/remote/index.ts#L383)
|