diff --git a/docs/src/javascript/README.md b/docs/src/javascript/README.md index 4f9cd732..b4744fc6 100644 --- a/docs/src/javascript/README.md +++ b/docs/src/javascript/README.md @@ -18,7 +18,7 @@ npm install vectordb const lancedb = require('vectordb'); const db = lancedb.connect(''); const table = await db.openTable('my_table'); -const query = await table.search([0.1, 0.3]).setLimit(20).execute(); +const query = await table.search([0.1, 0.3]).limit(20).execute(); console.log(results); ``` @@ -26,12 +26,6 @@ The [examples](./examples) folder contains complete examples. ## Development -The LanceDB javascript is built with npm: - -```bash -npm run tsc -``` - Run the tests with ```bash diff --git a/docs/src/javascript/classes/Connection.md b/docs/src/javascript/classes/Connection.md deleted file mode 100644 index 092e94ab..00000000 --- a/docs/src/javascript/classes/Connection.md +++ /dev/null @@ -1,211 +0,0 @@ -[vectordb](../README.md) / [Exports](../modules.md) / Connection - -# Class: Connection - -A connection to a LanceDB database. - -## Table of contents - -### Constructors - -- [constructor](Connection.md#constructor) - -### Properties - -- [\_db](Connection.md#_db) -- [\_uri](Connection.md#_uri) - -### Accessors - -- [uri](Connection.md#uri) - -### Methods - -- [createTable](Connection.md#createtable) -- [createTableArrow](Connection.md#createtablearrow) -- [openTable](Connection.md#opentable) -- [tableNames](Connection.md#tablenames) - -## Constructors - -### constructor - -• **new Connection**(`db`, `uri`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `db` | `any` | -| `uri` | `string` | - -#### Defined in - -[index.ts:46](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L46) - -## Properties - -### \_db - -• `Private` `Readonly` **\_db**: `any` - -#### Defined in - -[index.ts:44](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L44) - -___ - -### \_uri - -• `Private` `Readonly` **\_uri**: `string` - -#### Defined in - -[index.ts:43](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L43) - -## Accessors - -### uri - -• `get` **uri**(): `string` - -#### Returns - -`string` - -#### Defined in - -[index.ts:51](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L51) - -## Methods - -### createTable - -▸ **createTable**(`name`, `data`): `Promise`<[`Table`](Table.md)<`number`[]\>\> - -Creates a new Table and initialize it with new data. - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `name` | `string` | The name of the table. | -| `data` | `Record`<`string`, `unknown`\>[] | Non-empty Array of Records to be inserted into the Table | - -#### Returns - -`Promise`<[`Table`](Table.md)<`number`[]\>\> - -#### Defined in - -[index.ts:91](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L91) - -▸ **createTable**<`T`\>(`name`, `data`, `embeddings`): `Promise`<[`Table`](Table.md)<`T`\>\> - -Creates a new Table and initialize it with new data. - -#### Type parameters - -| Name | -| :------ | -| `T` | - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `name` | `string` | The name of the table. | -| `data` | `Record`<`string`, `unknown`\>[] | Non-empty Array of Records to be inserted into the Table | -| `embeddings` | [`EmbeddingFunction`](../interfaces/EmbeddingFunction.md)<`T`\> | An embedding function to use on this Table | - -#### Returns - -`Promise`<[`Table`](Table.md)<`T`\>\> - -#### Defined in - -[index.ts:99](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L99) - -___ - -### createTableArrow - -▸ **createTableArrow**(`name`, `table`): `Promise`<[`Table`](Table.md)<`number`[]\>\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `name` | `string` | -| `table` | `Table`<`any`\> | - -#### Returns - -`Promise`<[`Table`](Table.md)<`number`[]\>\> - -#### Defined in - -[index.ts:109](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L109) - -___ - -### openTable - -▸ **openTable**(`name`): `Promise`<[`Table`](Table.md)<`number`[]\>\> - -Open a table in the database. - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `name` | `string` | The name of the table. | - -#### Returns - -`Promise`<[`Table`](Table.md)<`number`[]\>\> - -#### Defined in - -[index.ts:67](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L67) - -▸ **openTable**<`T`\>(`name`, `embeddings`): `Promise`<[`Table`](Table.md)<`T`\>\> - -Open a table in the database. - -#### Type parameters - -| Name | -| :------ | -| `T` | - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `name` | `string` | The name of the table. | -| `embeddings` | [`EmbeddingFunction`](../interfaces/EmbeddingFunction.md)<`T`\> | An embedding function to use on this Table | - -#### Returns - -`Promise`<[`Table`](Table.md)<`T`\>\> - -#### Defined in - -[index.ts:74](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L74) - -___ - -### tableNames - -▸ **tableNames**(): `Promise`<`string`[]\> - -Get the names of all tables in the database. - -#### Returns - -`Promise`<`string`[]\> - -#### Defined in - -[index.ts:58](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L58) diff --git a/docs/src/javascript/classes/LocalConnection.md b/docs/src/javascript/classes/LocalConnection.md new file mode 100644 index 00000000..354be977 --- /dev/null +++ b/docs/src/javascript/classes/LocalConnection.md @@ -0,0 +1,270 @@ +[vectordb](../README.md) / [Exports](../modules.md) / LocalConnection + +# Class: LocalConnection + +A connection to a LanceDB database. + +## Implements + +- [`Connection`](../interfaces/Connection.md) + +## Table of contents + +### Constructors + +- [constructor](LocalConnection.md#constructor) + +### Properties + +- [\_db](LocalConnection.md#_db) +- [\_uri](LocalConnection.md#_uri) + +### Accessors + +- [uri](LocalConnection.md#uri) + +### Methods + +- [createTable](LocalConnection.md#createtable) +- [createTableArrow](LocalConnection.md#createtablearrow) +- [dropTable](LocalConnection.md#droptable) +- [openTable](LocalConnection.md#opentable) +- [tableNames](LocalConnection.md#tablenames) + +## Constructors + +### constructor + +• **new LocalConnection**(`db`, `uri`) + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `db` | `any` | +| `uri` | `string` | + +#### Defined in + +[index.ts:129](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L129) + +## Properties + +### \_db + +• `Private` `Readonly` **\_db**: `any` + +#### Defined in + +[index.ts:127](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L127) + +___ + +### \_uri + +• `Private` `Readonly` **\_uri**: `string` + +#### Defined in + +[index.ts:126](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L126) + +## Accessors + +### uri + +• `get` **uri**(): `string` + +#### Returns + +`string` + +#### Implementation of + +[Connection](../interfaces/Connection.md).[uri](../interfaces/Connection.md#uri) + +#### Defined in + +[index.ts:134](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L134) + +## Methods + +### createTable + +▸ **createTable**(`name`, `data`): `Promise`<[`Table`](../interfaces/Table.md)<`number`[]\>\> + +Creates a new Table and initialize it with new data. + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `name` | `string` | The name of the table. | +| `data` | `Record`<`string`, `unknown`\>[] | Non-empty Array of Records to be inserted into the Table | + +#### Returns + +`Promise`<[`Table`](../interfaces/Table.md)<`number`[]\>\> + +#### Implementation of + +Connection.createTable + +#### Defined in + +[index.ts:174](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L174) + +▸ **createTable**<`T`\>(`name`, `data`, `embeddings`): `Promise`<[`Table`](../interfaces/Table.md)<`T`\>\> + +Creates a new Table and initialize it with new data. + +#### Type parameters + +| Name | +| :------ | +| `T` | + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `name` | `string` | The name of the table. | +| `data` | `Record`<`string`, `unknown`\>[] | Non-empty Array of Records to be inserted into the Table | +| `embeddings` | [`EmbeddingFunction`](../interfaces/EmbeddingFunction.md)<`T`\> | An embedding function to use on this Table | + +#### Returns + +`Promise`<[`Table`](../interfaces/Table.md)<`T`\>\> + +#### Implementation of + +Connection.createTable + +#### Defined in + +[index.ts:182](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L182) + +___ + +### createTableArrow + +▸ **createTableArrow**(`name`, `table`): `Promise`<[`Table`](../interfaces/Table.md)<`number`[]\>\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `name` | `string` | +| `table` | `Table`<`any`\> | + +#### Returns + +`Promise`<[`Table`](../interfaces/Table.md)<`number`[]\>\> + +#### Implementation of + +[Connection](../interfaces/Connection.md).[createTableArrow](../interfaces/Connection.md#createtablearrow) + +#### Defined in + +[index.ts:192](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L192) + +___ + +### dropTable + +▸ **dropTable**(`name`): `Promise`<`void`\> + +Drop an existing table. + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `name` | `string` | The name of the table to drop. | + +#### Returns + +`Promise`<`void`\> + +#### Implementation of + +[Connection](../interfaces/Connection.md).[dropTable](../interfaces/Connection.md#droptable) + +#### Defined in + +[index.ts:202](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L202) + +___ + +### openTable + +▸ **openTable**(`name`): `Promise`<[`Table`](../interfaces/Table.md)<`number`[]\>\> + +Open a table in the database. + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `name` | `string` | The name of the table. | + +#### Returns + +`Promise`<[`Table`](../interfaces/Table.md)<`number`[]\>\> + +#### Implementation of + +Connection.openTable + +#### Defined in + +[index.ts:150](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L150) + +▸ **openTable**<`T`\>(`name`, `embeddings`): `Promise`<[`Table`](../interfaces/Table.md)<`T`\>\> + +Open a table in the database. + +#### Type parameters + +| Name | +| :------ | +| `T` | + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `name` | `string` | The name of the table. | +| `embeddings` | [`EmbeddingFunction`](../interfaces/EmbeddingFunction.md)<`T`\> | An embedding function to use on this Table | + +#### Returns + +`Promise`<[`Table`](../interfaces/Table.md)<`T`\>\> + +#### Implementation of + +Connection.openTable + +#### Defined in + +[index.ts:157](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L157) + +___ + +### tableNames + +▸ **tableNames**(): `Promise`<`string`[]\> + +Get the names of all tables in the database. + +#### Returns + +`Promise`<`string`[]\> + +#### Implementation of + +[Connection](../interfaces/Connection.md).[tableNames](../interfaces/Connection.md#tablenames) + +#### Defined in + +[index.ts:141](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L141) diff --git a/docs/src/javascript/classes/LocalTable.md b/docs/src/javascript/classes/LocalTable.md new file mode 100644 index 00000000..343147d1 --- /dev/null +++ b/docs/src/javascript/classes/LocalTable.md @@ -0,0 +1,289 @@ +[vectordb](../README.md) / [Exports](../modules.md) / LocalTable + +# Class: LocalTable + +A LanceDB table that allows you to search and update a table. + +## Type parameters + +| Name | Type | +| :------ | :------ | +| `T` | `number`[] | + +## Implements + +- [`Table`](../interfaces/Table.md)<`T`\> + +## Table of contents + +### Constructors + +- [constructor](LocalTable.md#constructor) + +### Properties + +- [\_embeddings](LocalTable.md#_embeddings) +- [\_name](LocalTable.md#_name) +- [\_tbl](LocalTable.md#_tbl) + +### Accessors + +- [name](LocalTable.md#name) + +### Methods + +- [add](LocalTable.md#add) +- [countRows](LocalTable.md#countrows) +- [createIndex](LocalTable.md#createindex) +- [delete](LocalTable.md#delete) +- [overwrite](LocalTable.md#overwrite) +- [search](LocalTable.md#search) + +## Constructors + +### constructor + +• **new LocalTable**<`T`\>(`tbl`, `name`) + +#### Type parameters + +| Name | Type | +| :------ | :------ | +| `T` | `number`[] | + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `tbl` | `any` | +| `name` | `string` | + +#### Defined in + +[index.ts:212](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L212) + +• **new LocalTable**<`T`\>(`tbl`, `name`, `embeddings`) + +#### Type parameters + +| Name | Type | +| :------ | :------ | +| `T` | `number`[] | + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `tbl` | `any` | | +| `name` | `string` | | +| `embeddings` | [`EmbeddingFunction`](../interfaces/EmbeddingFunction.md)<`T`\> | An embedding function to use when interacting with this table | + +#### Defined in + +[index.ts:218](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L218) + +## Properties + +### \_embeddings + +• `Private` `Optional` `Readonly` **\_embeddings**: [`EmbeddingFunction`](../interfaces/EmbeddingFunction.md)<`T`\> + +#### Defined in + +[index.ts:210](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L210) + +___ + +### \_name + +• `Private` `Readonly` **\_name**: `string` + +#### Defined in + +[index.ts:209](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L209) + +___ + +### \_tbl + +• `Private` `Readonly` **\_tbl**: `any` + +#### Defined in + +[index.ts:208](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L208) + +## Accessors + +### name + +• `get` **name**(): `string` + +#### Returns + +`string` + +#### Implementation of + +[Table](../interfaces/Table.md).[name](../interfaces/Table.md#name) + +#### Defined in + +[index.ts:225](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L225) + +## Methods + +### add + +▸ **add**(`data`): `Promise`<`number`\> + +Insert records into this Table. + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `data` | `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 + +[index.ts:243](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L243) + +___ + +### 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 + +[index.ts:269](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L269) + +___ + +### createIndex + +▸ **createIndex**(`indexParams`): `Promise`<`any`\> + +Create an ANN index on this Table vector index. + +**`See`** + +VectorIndexParams. + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `indexParams` | `IvfPQIndexConfig` | The parameters of this Index, | + +#### Returns + +`Promise`<`any`\> + +#### Implementation of + +[Table](../interfaces/Table.md).[createIndex](../interfaces/Table.md#createindex) + +#### Defined in + +[index.ts:262](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L262) + +___ + +### 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](../interfaces/Table.md).[delete](../interfaces/Table.md#delete) + +#### Defined in + +[index.ts:278](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L278) + +___ + +### overwrite + +▸ **overwrite**(`data`): `Promise`<`number`\> + +Insert records into this Table, replacing its contents. + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `data` | `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 + +[index.ts:253](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L253) + +___ + +### 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 + +[index.ts:233](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L233) diff --git a/docs/src/javascript/classes/OpenAIEmbeddingFunction.md b/docs/src/javascript/classes/OpenAIEmbeddingFunction.md index d6087ed3..a6e94e5f 100644 --- a/docs/src/javascript/classes/OpenAIEmbeddingFunction.md +++ b/docs/src/javascript/classes/OpenAIEmbeddingFunction.md @@ -40,7 +40,7 @@ An embedding function that automatically creates vector representation for a giv #### Defined in -[embedding/openai.ts:21](https://github.com/lancedb/lancedb/blob/31dab97/node/src/embedding/openai.ts#L21) +[embedding/openai.ts:21](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/embedding/openai.ts#L21) ## Properties @@ -50,7 +50,7 @@ An embedding function that automatically creates vector representation for a giv #### Defined in -[embedding/openai.ts:19](https://github.com/lancedb/lancedb/blob/31dab97/node/src/embedding/openai.ts#L19) +[embedding/openai.ts:19](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/embedding/openai.ts#L19) ___ @@ -60,7 +60,7 @@ ___ #### Defined in -[embedding/openai.ts:18](https://github.com/lancedb/lancedb/blob/31dab97/node/src/embedding/openai.ts#L18) +[embedding/openai.ts:18](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/embedding/openai.ts#L18) ___ @@ -76,7 +76,7 @@ The name of the column that will be used as input for the Embedding Function. #### Defined in -[embedding/openai.ts:50](https://github.com/lancedb/lancedb/blob/31dab97/node/src/embedding/openai.ts#L50) +[embedding/openai.ts:50](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/embedding/openai.ts#L50) ## Methods @@ -102,4 +102,4 @@ Creates a vector representation for the given values. #### Defined in -[embedding/openai.ts:38](https://github.com/lancedb/lancedb/blob/31dab97/node/src/embedding/openai.ts#L38) +[embedding/openai.ts:38](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/embedding/openai.ts#L38) diff --git a/docs/src/javascript/classes/Query.md b/docs/src/javascript/classes/Query.md index da1fae5e..1c0b5e8b 100644 --- a/docs/src/javascript/classes/Query.md +++ b/docs/src/javascript/classes/Query.md @@ -18,7 +18,6 @@ A builder for nearest neighbor queries for LanceDB. ### Properties -- [\_columns](Query.md#_columns) - [\_embeddings](Query.md#_embeddings) - [\_filter](Query.md#_filter) - [\_limit](Query.md#_limit) @@ -27,7 +26,9 @@ A builder for nearest neighbor queries for LanceDB. - [\_query](Query.md#_query) - [\_queryVector](Query.md#_queryvector) - [\_refineFactor](Query.md#_refinefactor) +- [\_select](Query.md#_select) - [\_tbl](Query.md#_tbl) +- [where](Query.md#where) ### Methods @@ -37,6 +38,7 @@ A builder for nearest neighbor queries for LanceDB. - [metricType](Query.md#metrictype) - [nprobes](Query.md#nprobes) - [refineFactor](Query.md#refinefactor) +- [select](Query.md#select) ## Constructors @@ -60,27 +62,17 @@ A builder for nearest neighbor queries for LanceDB. #### Defined in -[index.ts:241](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L241) +[index.ts:353](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L353) ## Properties -### \_columns - -• `Private` `Optional` `Readonly` **\_columns**: `string`[] - -#### Defined in - -[index.ts:236](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L236) - -___ - ### \_embeddings • `Private` `Optional` `Readonly` **\_embeddings**: [`EmbeddingFunction`](../interfaces/EmbeddingFunction.md)<`T`\> #### Defined in -[index.ts:239](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L239) +[index.ts:351](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L351) ___ @@ -90,7 +82,7 @@ ___ #### Defined in -[index.ts:237](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L237) +[index.ts:349](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L349) ___ @@ -100,7 +92,7 @@ ___ #### Defined in -[index.ts:233](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L233) +[index.ts:345](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L345) ___ @@ -110,7 +102,7 @@ ___ #### Defined in -[index.ts:238](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L238) +[index.ts:350](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L350) ___ @@ -120,7 +112,7 @@ ___ #### Defined in -[index.ts:235](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L235) +[index.ts:347](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L347) ___ @@ -130,7 +122,7 @@ ___ #### Defined in -[index.ts:231](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L231) +[index.ts:343](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L343) ___ @@ -140,7 +132,7 @@ ___ #### Defined in -[index.ts:232](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L232) +[index.ts:344](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L344) ___ @@ -150,7 +142,17 @@ ___ #### Defined in -[index.ts:234](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L234) +[index.ts:346](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L346) + +___ + +### \_select + +• `Private` `Optional` **\_select**: `string`[] + +#### Defined in + +[index.ts:348](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L348) ___ @@ -160,7 +162,33 @@ ___ #### Defined in -[index.ts:230](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L230) +[index.ts:342](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L342) + +___ + +### where + +• **where**: (`value`: `string`) => [`Query`](Query.md)<`T`\> + +#### Type declaration + +▸ (`value`): [`Query`](Query.md)<`T`\> + +A filter statement to be applied to this query. + +##### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `value` | `string` | A filter in the same format used by a sql WHERE clause. | + +##### Returns + +[`Query`](Query.md)<`T`\> + +#### Defined in + +[index.ts:401](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L401) ## Methods @@ -182,7 +210,7 @@ Execute the query and return the results as an Array of Objects #### Defined in -[index.ts:301](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L301) +[index.ts:424](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L424) ___ @@ -204,7 +232,7 @@ A filter statement to be applied to this query. #### Defined in -[index.ts:284](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L284) +[index.ts:396](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L396) ___ @@ -226,7 +254,7 @@ Sets the number of results that will be returned #### Defined in -[index.ts:257](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L257) +[index.ts:369](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L369) ___ @@ -252,7 +280,7 @@ MetricType for the different options #### Defined in -[index.ts:293](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L293) +[index.ts:416](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L416) ___ @@ -274,7 +302,7 @@ The number of probes used. A higher number makes search more accurate but also s #### Defined in -[index.ts:275](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L275) +[index.ts:387](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L387) ___ @@ -296,4 +324,26 @@ Refine the results by reading extra elements and re-ranking them in memory. #### Defined in -[index.ts:266](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L266) +[index.ts:378](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L378) + +___ + +### select + +▸ **select**(`value`): [`Query`](Query.md)<`T`\> + +Return only the specified columns. + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `value` | `string`[] | Only select the specified columns. If not specified, all columns will be returned. | + +#### Returns + +[`Query`](Query.md)<`T`\> + +#### Defined in + +[index.ts:407](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L407) diff --git a/docs/src/javascript/classes/Table.md b/docs/src/javascript/classes/Table.md deleted file mode 100644 index 5a28755f..00000000 --- a/docs/src/javascript/classes/Table.md +++ /dev/null @@ -1,215 +0,0 @@ -[vectordb](../README.md) / [Exports](../modules.md) / Table - -# Class: Table - -## Type parameters - -| Name | Type | -| :------ | :------ | -| `T` | `number`[] | - -## Table of contents - -### Constructors - -- [constructor](Table.md#constructor) - -### Properties - -- [\_embeddings](Table.md#_embeddings) -- [\_name](Table.md#_name) -- [\_tbl](Table.md#_tbl) - -### Accessors - -- [name](Table.md#name) - -### Methods - -- [add](Table.md#add) -- [create\_index](Table.md#create_index) -- [overwrite](Table.md#overwrite) -- [search](Table.md#search) - -## Constructors - -### constructor - -• **new Table**<`T`\>(`tbl`, `name`) - -#### Type parameters - -| Name | Type | -| :------ | :------ | -| `T` | `number`[] | - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `tbl` | `any` | -| `name` | `string` | - -#### Defined in - -[index.ts:121](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L121) - -• **new Table**<`T`\>(`tbl`, `name`, `embeddings`) - -#### Type parameters - -| Name | Type | -| :------ | :------ | -| `T` | `number`[] | - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `tbl` | `any` | | -| `name` | `string` | | -| `embeddings` | [`EmbeddingFunction`](../interfaces/EmbeddingFunction.md)<`T`\> | An embedding function to use when interacting with this table | - -#### Defined in - -[index.ts:127](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L127) - -## Properties - -### \_embeddings - -• `Private` `Optional` `Readonly` **\_embeddings**: [`EmbeddingFunction`](../interfaces/EmbeddingFunction.md)<`T`\> - -#### Defined in - -[index.ts:119](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L119) - -___ - -### \_name - -• `Private` `Readonly` **\_name**: `string` - -#### Defined in - -[index.ts:118](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L118) - -___ - -### \_tbl - -• `Private` `Readonly` **\_tbl**: `any` - -#### Defined in - -[index.ts:117](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L117) - -## Accessors - -### name - -• `get` **name**(): `string` - -#### Returns - -`string` - -#### Defined in - -[index.ts:134](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L134) - -## Methods - -### add - -▸ **add**(`data`): `Promise`<`number`\> - -Insert records into this Table. - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `data` | `Record`<`string`, `unknown`\>[] | Records to be inserted into the Table | - -#### Returns - -`Promise`<`number`\> - -The number of rows added to the table - -#### Defined in - -[index.ts:152](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L152) - -___ - -### create\_index - -▸ **create_index**(`indexParams`): `Promise`<`any`\> - -Create an ANN index on this Table vector index. - -**`See`** - -VectorIndexParams. - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `indexParams` | `IvfPQIndexConfig` | The parameters of this Index, | - -#### Returns - -`Promise`<`any`\> - -#### Defined in - -[index.ts:171](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L171) - -___ - -### overwrite - -▸ **overwrite**(`data`): `Promise`<`number`\> - -Insert records into this Table, replacing its contents. - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `data` | `Record`<`string`, `unknown`\>[] | Records to be inserted into the Table | - -#### Returns - -`Promise`<`number`\> - -The number of rows added to the table - -#### Defined in - -[index.ts:162](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L162) - -___ - -### 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`\> - -#### Defined in - -[index.ts:142](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L142) diff --git a/docs/src/javascript/enums/MetricType.md b/docs/src/javascript/enums/MetricType.md index adced6a2..ba7ba252 100644 --- a/docs/src/javascript/enums/MetricType.md +++ b/docs/src/javascript/enums/MetricType.md @@ -21,7 +21,7 @@ Cosine distance #### Defined in -[index.ts:341](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L341) +[index.ts:465](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L465) ___ @@ -33,4 +33,4 @@ Euclidean distance #### Defined in -[index.ts:336](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L336) +[index.ts:460](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L460) diff --git a/docs/src/javascript/enums/WriteMode.md b/docs/src/javascript/enums/WriteMode.md index 32a5c244..66472ba5 100644 --- a/docs/src/javascript/enums/WriteMode.md +++ b/docs/src/javascript/enums/WriteMode.md @@ -17,7 +17,7 @@ #### Defined in -[index.ts:326](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L326) +[index.ts:450](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L450) ___ @@ -27,4 +27,4 @@ ___ #### Defined in -[index.ts:325](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L325) +[index.ts:449](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L449) diff --git a/docs/src/javascript/interfaces/Connection.md b/docs/src/javascript/interfaces/Connection.md new file mode 100644 index 00000000..e13bf9f4 --- /dev/null +++ b/docs/src/javascript/interfaces/Connection.md @@ -0,0 +1,137 @@ +[vectordb](../README.md) / [Exports](../modules.md) / Connection + +# Interface: Connection + +A LanceDB connection that allows you to open tables and create new ones. + +Connection could be local against filesystem or remote against a server. + +## Implemented by + +- [`LocalConnection`](../classes/LocalConnection.md) + +## Table of contents + +### Properties + +- [createTable](Connection.md#createtable) +- [createTableArrow](Connection.md#createtablearrow) +- [dropTable](Connection.md#droptable) +- [openTable](Connection.md#opentable) +- [tableNames](Connection.md#tablenames) +- [uri](Connection.md#uri) + +## Properties + +### createTable + +• **createTable**: (`name`: `string`, `data`: `Record`<`string`, `unknown`\>[]) => `Promise`<[`Table`](Table.md)<`number`[]\>\> & (`name`: `string`, `data`: `Record`<`string`, `unknown`\>[], `embeddings`: [`EmbeddingFunction`](EmbeddingFunction.md)<`T`\>) => `Promise`<[`Table`](Table.md)<`T`\>\> & (`name`: `string`, `data`: `Record`<`string`, `unknown`\>[], `embeddings?`: [`EmbeddingFunction`](EmbeddingFunction.md)<`T`\>) => `Promise`<[`Table`](Table.md)<`T`\>\> + +Creates a new Table and initialize it with new data. + +**`Param`** + +The name of the table. + +**`Param`** + +Non-empty Array of Records to be inserted into the Table + +#### Defined in + +[index.ts:63](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L63) + +___ + +### createTableArrow + +• **createTableArrow**: (`name`: `string`, `table`: `Table`<`any`\>) => `Promise`<[`Table`](Table.md)<`number`[]\>\> + +#### Type declaration + +▸ (`name`, `table`): `Promise`<[`Table`](Table.md)<`number`[]\>\> + +##### Parameters + +| Name | Type | +| :------ | :------ | +| `name` | `string` | +| `table` | `Table`<`any`\> | + +##### Returns + +`Promise`<[`Table`](Table.md)<`number`[]\>\> + +#### Defined in + +[index.ts:65](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L65) + +___ + +### dropTable + +• **dropTable**: (`name`: `string`) => `Promise`<`void`\> + +#### Type declaration + +▸ (`name`): `Promise`<`void`\> + +Drop an existing table. + +##### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `name` | `string` | The name of the table to drop. | + +##### Returns + +`Promise`<`void`\> + +#### Defined in + +[index.ts:71](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L71) + +___ + +### openTable + +• **openTable**: (`name`: `string`) => `Promise`<[`Table`](Table.md)<`number`[]\>\> & (`name`: `string`, `embeddings`: [`EmbeddingFunction`](EmbeddingFunction.md)<`T`\>) => `Promise`<[`Table`](Table.md)<`T`\>\> & (`name`: `string`, `embeddings?`: [`EmbeddingFunction`](EmbeddingFunction.md)<`T`\>) => `Promise`<[`Table`](Table.md)<`T`\>\> + +Open a table in the database. + +**`Param`** + +The name of the table. + +#### Defined in + +[index.ts:54](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L54) + +___ + +### tableNames + +• **tableNames**: () => `Promise`<`string`[]\> + +#### Type declaration + +▸ (): `Promise`<`string`[]\> + +##### Returns + +`Promise`<`string`[]\> + +#### Defined in + +[index.ts:47](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L47) + +___ + +### uri + +• **uri**: `string` + +#### Defined in + +[index.ts:45](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L45) diff --git a/docs/src/javascript/interfaces/EmbeddingFunction.md b/docs/src/javascript/interfaces/EmbeddingFunction.md index 85962de9..ceaa8a5e 100644 --- a/docs/src/javascript/interfaces/EmbeddingFunction.md +++ b/docs/src/javascript/interfaces/EmbeddingFunction.md @@ -45,7 +45,7 @@ Creates a vector representation for the given values. #### Defined in -[embedding/embedding_function.ts:27](https://github.com/lancedb/lancedb/blob/31dab97/node/src/embedding/embedding_function.ts#L27) +[embedding/embedding_function.ts:27](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/embedding/embedding_function.ts#L27) ___ @@ -57,4 +57,4 @@ The name of the column that will be used as input for the Embedding Function. #### Defined in -[embedding/embedding_function.ts:22](https://github.com/lancedb/lancedb/blob/31dab97/node/src/embedding/embedding_function.ts#L22) +[embedding/embedding_function.ts:22](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/embedding/embedding_function.ts#L22) diff --git a/docs/src/javascript/interfaces/Table.md b/docs/src/javascript/interfaces/Table.md new file mode 100644 index 00000000..5d600e66 --- /dev/null +++ b/docs/src/javascript/interfaces/Table.md @@ -0,0 +1,195 @@ +[vectordb](../README.md) / [Exports](../modules.md) / Table + +# Interface: Table + +A LanceDB table that allows you to search and update a table. + +## Type parameters + +| Name | Type | +| :------ | :------ | +| `T` | `number`[] | + +## Implemented by + +- [`LocalTable`](../classes/LocalTable.md) + +## Table of contents + +### Properties + +- [add](Table.md#add) +- [countRows](Table.md#countrows) +- [createIndex](Table.md#createindex) +- [delete](Table.md#delete) +- [name](Table.md#name) +- [overwrite](Table.md#overwrite) +- [search](Table.md#search) + +## Properties + +### add + +• **add**: (`data`: `Record`<`string`, `unknown`\>[]) => `Promise`<`number`\> + +#### Type declaration + +▸ (`data`): `Promise`<`number`\> + +Insert records into this Table. + +##### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `data` | `Record`<`string`, `unknown`\>[] | Records to be inserted into the Table | + +##### Returns + +`Promise`<`number`\> + +The number of rows added to the table + +#### Defined in + +[index.ts:92](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L92) + +___ + +### countRows + +• **countRows**: () => `Promise`<`number`\> + +#### Type declaration + +▸ (): `Promise`<`number`\> + +Returns the number of rows in this table. + +##### Returns + +`Promise`<`number`\> + +#### Defined in + +[index.ts:112](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L112) + +___ + +### createIndex + +• **createIndex**: (`indexParams`: `IvfPQIndexConfig`) => `Promise`<`any`\> + +#### Type declaration + +▸ (`indexParams`): `Promise`<`any`\> + +Create an ANN index on this Table vector index. + +**`See`** + +VectorIndexParams. + +##### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `indexParams` | `IvfPQIndexConfig` | The parameters of this Index, | + +##### Returns + +`Promise`<`any`\> + +#### Defined in + +[index.ts:107](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L107) + +___ + +### delete + +• **delete**: (`filter`: `string`) => `Promise`<`void`\> + +#### Type declaration + +▸ (`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`\> + +#### Defined in + +[index.ts:119](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L119) + +___ + +### name + +• **name**: `string` + +#### Defined in + +[index.ts:78](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L78) + +___ + +### overwrite + +• **overwrite**: (`data`: `Record`<`string`, `unknown`\>[]) => `Promise`<`number`\> + +#### Type declaration + +▸ (`data`): `Promise`<`number`\> + +Insert records into this Table, replacing its contents. + +##### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `data` | `Record`<`string`, `unknown`\>[] | Records to be inserted into the Table | + +##### Returns + +`Promise`<`number`\> + +The number of rows added to the table + +#### Defined in + +[index.ts:100](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L100) + +___ + +### search + +• **search**: (`query`: `T`) => [`Query`](../classes/Query.md)<`T`\> + +#### Type declaration + +▸ (`query`): [`Query`](../classes/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`](../classes/Query.md)<`T`\> + +#### Defined in + +[index.ts:84](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L84) diff --git a/docs/src/javascript/modules.md b/docs/src/javascript/modules.md index 2ac99034..d03d0c03 100644 --- a/docs/src/javascript/modules.md +++ b/docs/src/javascript/modules.md @@ -11,14 +11,16 @@ ### Classes -- [Connection](classes/Connection.md) +- [LocalConnection](classes/LocalConnection.md) +- [LocalTable](classes/LocalTable.md) - [OpenAIEmbeddingFunction](classes/OpenAIEmbeddingFunction.md) - [Query](classes/Query.md) -- [Table](classes/Table.md) ### Interfaces +- [Connection](interfaces/Connection.md) - [EmbeddingFunction](interfaces/EmbeddingFunction.md) +- [Table](interfaces/Table.md) ### Type Aliases @@ -36,13 +38,13 @@ #### Defined in -[index.ts:224](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L224) +[index.ts:336](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L336) ## Functions ### connect -▸ **connect**(`uri`): `Promise`<[`Connection`](classes/Connection.md)\> +▸ **connect**(`uri`): `Promise`<[`Connection`](interfaces/Connection.md)\> Connect to a LanceDB instance at the given URI @@ -54,8 +56,8 @@ Connect to a LanceDB instance at the given URI #### Returns -`Promise`<[`Connection`](classes/Connection.md)\> +`Promise`<[`Connection`](interfaces/Connection.md)\> #### Defined in -[index.ts:34](https://github.com/lancedb/lancedb/blob/31dab97/node/src/index.ts#L34) +[index.ts:34](https://github.com/lancedb/lancedb/blob/bfb5400/node/src/index.ts#L34) diff --git a/node/src/index.ts b/node/src/index.ts index 42e6b12e..bd9f7872 100644 --- a/node/src/index.ts +++ b/node/src/index.ts @@ -33,13 +33,96 @@ export { OpenAIEmbeddingFunction } from './embedding/openai' */ export async function connect (uri: string): Promise { const db = await databaseNew(uri) - return new Connection(db, uri) + return new LocalConnection(db, uri) +} + +/** + * A LanceDB connection that allows you to open tables and create new ones. + * + * Connection could be local against filesystem or remote against a server. + */ +export interface Connection { + uri: string + + tableNames: () => Promise + + /** + * Open a table in the database. + * + * @param name The name of the table. + */ + openTable: ((name: string) => Promise) & ((name: string, embeddings: EmbeddingFunction) => Promise>) & ((name: string, embeddings?: EmbeddingFunction) => Promise>) + + /** + * Creates a new Table and initialize it with new data. + * + * @param name The name of the table. + * @param data Non-empty Array of Records to be inserted into the Table + */ + + createTable: ((name: string, data: Array>) => Promise
) & ((name: string, data: Array>, embeddings: EmbeddingFunction) => Promise>) & ((name: string, data: Array>, embeddings?: EmbeddingFunction) => Promise>) + + createTableArrow: (name: string, table: ArrowTable) => Promise
+ + /** + * Drop an existing table. + * @param name The name of the table to drop. + */ + dropTable: (name: string) => Promise +} + +/** + * A LanceDB table that allows you to search and update a table. + */ +export interface Table { + name: string + + /** + * Creates a search query to find the nearest neighbors of the given search term + * @param query The query search term + */ + search: (query: T) => Query + + /** + * Insert records into this Table. + * + * @param data Records to be inserted into the Table + * @return The number of rows added to the table + */ + add: (data: Array>) => Promise + + /** + * Insert records into this Table, replacing its contents. + * + * @param data Records to be inserted into the Table + * @return The number of rows added to the table + */ + overwrite: (data: Array>) => Promise + + /** + * Create an ANN index on this Table vector index. + * + * @param indexParams The parameters of this Index, @see VectorIndexParams. + */ + createIndex: (indexParams: VectorIndexParams) => Promise + + /** + * Returns the number of rows in this table. + */ + countRows: () => Promise + + /** + * Delete rows from this table. + * + * @param filter A filter in the same format used by a sql WHERE clause. + */ + delete: (filter: string) => Promise } /** * A connection to a LanceDB database. */ -export class Connection { +export class LocalConnection implements Connection { private readonly _uri: string private readonly _db: any @@ -75,9 +158,9 @@ export class Connection { async openTable (name: string, embeddings?: EmbeddingFunction): Promise> { const tbl = await databaseOpenTable.call(this._db, name) if (embeddings !== undefined) { - return new Table(tbl, name, embeddings) + return new LocalTable(tbl, name, embeddings) } else { - return new Table(tbl, name) + return new LocalTable(tbl, name) } } @@ -100,9 +183,9 @@ export class Connection { async createTable (name: string, data: Array>, embeddings?: EmbeddingFunction): Promise> { const tbl = await tableCreate.call(this._db, name, await fromRecordsToBuffer(data, embeddings)) if (embeddings !== undefined) { - return new Table(tbl, name, embeddings) + return new LocalTable(tbl, name, embeddings) } else { - return new Table(tbl, name) + return new LocalTable(tbl, name) } } @@ -121,7 +204,7 @@ export class Connection { } } -export class Table { +export class LocalTable implements Table { private readonly _tbl: any private readonly _name: string private readonly _embeddings?: EmbeddingFunction @@ -190,7 +273,7 @@ export class Table { /** * Delete rows from this table. * - * @param filter The filter to be applied to this table. + * @param filter A filter in the same format used by a sql WHERE clause. */ async delete (filter: string): Promise { return tableDelete.call(this._tbl, filter) @@ -347,6 +430,7 @@ export class Query { const buffer = await tableSearch.call(this._tbl, this) const data = tableFromIPC(buffer) + return data.toArray().map((entry: Record) => { const newObject: Record = {} Object.keys(entry).forEach((key: string) => {