ci(node): check docs in CI (#2084)

* Make `npm run docs` fail if there are any warnings. This will catch
items missing from the API reference.
* Add a check in our CI to make sure `npm run dos` runs without warnings
and doesn't generate any new files (indicating it might be out-of-date.
* Hide constructors that aren't user facing.
* Remove unused enum `WriteMode`.

Closes #2068
This commit is contained in:
Will Jones
2025-01-30 16:06:06 -08:00
committed by GitHub
parent 25c17ebf4e
commit e05c0cd87e
59 changed files with 1287 additions and 597 deletions

View File

@@ -23,18 +23,6 @@ be closed when they are garbage collected.
Any created tables are independent and will continue to work even if
the underlying connection has been closed.
## Constructors
### new Connection()
```ts
new Connection(): Connection
```
#### Returns
[`Connection`](Connection.md)
## Methods
### close()
@@ -71,7 +59,7 @@ Creates a new empty Table
* **name**: `string`
The name of the table.
* **schema**: `SchemaLike`
* **schema**: [`SchemaLike`](../type-aliases/SchemaLike.md)
The schema of the table
* **options?**: `Partial`<[`CreateTableOptions`](../interfaces/CreateTableOptions.md)>
@@ -117,7 +105,7 @@ Creates a new Table and initialize it with new data.
* **name**: `string`
The name of the table.
* **data**: `TableLike` \| `Record`<`string`, `unknown`>[]
* **data**: [`TableLike`](../type-aliases/TableLike.md) \| `Record`<`string`, `unknown`>[]
Non-empty Array of Records
to be inserted into the table
@@ -189,7 +177,7 @@ Open a table in the database.
* **name**: `string`
The name of the table
* **options?**: `Partial`<`OpenTableOptions`>
* **options?**: `Partial`<[`OpenTableOptions`](../interfaces/OpenTableOptions.md)>
#### Returns

View File

@@ -72,11 +72,9 @@ The results of a full text search are ordered by relevance measured by BM25.
You can combine filters with full text search.
For now, the full text search index only supports English, and doesn't support phrase search.
#### Parameters
* **options?**: `Partial`<`FtsOptions`>
* **options?**: `Partial`<[`FtsOptions`](../interfaces/FtsOptions.md)>
#### Returns
@@ -98,7 +96,7 @@ the vectors.
#### Parameters
* **options?**: `Partial`<`HnswPqOptions`>
* **options?**: `Partial`<[`HnswPqOptions`](../interfaces/HnswPqOptions.md)>
#### Returns
@@ -120,7 +118,7 @@ the vectors.
#### Parameters
* **options?**: `Partial`<`HnswSqOptions`>
* **options?**: `Partial`<[`HnswSqOptions`](../interfaces/HnswSqOptions.md)>
#### Returns

View File

@@ -0,0 +1,126 @@
[**@lancedb/lancedb**](../README.md) • **Docs**
***
[@lancedb/lancedb](../globals.md) / MergeInsertBuilder
# Class: MergeInsertBuilder
A builder used to create and run a merge insert operation
## Constructors
### new MergeInsertBuilder()
```ts
new MergeInsertBuilder(native, schema): MergeInsertBuilder
```
Construct a MergeInsertBuilder. __Internal use only.__
#### Parameters
* **native**: `NativeMergeInsertBuilder`
* **schema**: `Schema`<`any`> \| `Promise`<`Schema`<`any`>>
#### Returns
[`MergeInsertBuilder`](MergeInsertBuilder.md)
## Methods
### execute()
```ts
execute(data): Promise<void>
```
Executes the merge insert operation
Nothing is returned but the `Table` is updated
#### Parameters
* **data**: [`Data`](../type-aliases/Data.md)
#### Returns
`Promise`&lt;`void`&gt;
***
### whenMatchedUpdateAll()
```ts
whenMatchedUpdateAll(options?): MergeInsertBuilder
```
Rows that exist in both the source table (new data) and
the target table (old data) will be updated, replacing
the old row with the corresponding matching row.
If there are multiple matches then the behavior is undefined.
Currently this causes multiple copies of the row to be created
but that behavior is subject to change.
An optional condition may be specified. If it is, then only
matched rows that satisfy the condtion will be updated. Any
rows that do not satisfy the condition will be left as they
are. Failing to satisfy the condition does not cause a
"matched row" to become a "not matched" row.
The condition should be an SQL string. Use the prefix
target. to refer to rows in the target table (old data)
and the prefix source. to refer to rows in the source
table (new data).
For example, "target.last_update < source.last_update"
#### Parameters
* **options?**
* **options.where?**: `string`
#### Returns
[`MergeInsertBuilder`](MergeInsertBuilder.md)
***
### whenNotMatchedBySourceDelete()
```ts
whenNotMatchedBySourceDelete(options?): MergeInsertBuilder
```
Rows that exist only in the target table (old data) will be
deleted. An optional condition can be provided to limit what
data is deleted.
#### Parameters
* **options?**
* **options.where?**: `string`
An optional condition to limit what data is deleted
#### Returns
[`MergeInsertBuilder`](MergeInsertBuilder.md)
***
### whenNotMatchedInsertAll()
```ts
whenNotMatchedInsertAll(): MergeInsertBuilder
```
Rows that exist only in the source table (new data) should
be inserted into the target table.
#### Returns
[`MergeInsertBuilder`](MergeInsertBuilder.md)

View File

@@ -8,30 +8,14 @@
A builder for LanceDB queries.
## See
[Table#query](Table.md#query), [Table#search](Table.md#search)
## Extends
- [`QueryBase`](QueryBase.md)&lt;`NativeQuery`&gt;
## Constructors
### new Query()
```ts
new Query(tbl): Query
```
#### Parameters
* **tbl**: `Table`
#### Returns
[`Query`](Query.md)
#### Overrides
[`QueryBase`](QueryBase.md).[`constructor`](QueryBase.md#constructors)
## Properties
### inner
@@ -46,42 +30,6 @@ protected inner: Query | Promise<Query>;
## Methods
### \[asyncIterator\]()
```ts
asyncIterator: AsyncIterator<RecordBatch<any>, any, undefined>
```
#### Returns
`AsyncIterator`&lt;`RecordBatch`&lt;`any`&gt;, `any`, `undefined`&gt;
#### Inherited from
[`QueryBase`](QueryBase.md).[`[asyncIterator]`](QueryBase.md#%5Basynciterator%5D)
***
### doCall()
```ts
protected doCall(fn): void
```
#### Parameters
* **fn**
#### Returns
`void`
#### Inherited from
[`QueryBase`](QueryBase.md).[`doCall`](QueryBase.md#docall)
***
### execute()
```ts
@@ -92,7 +40,7 @@ Execute the query and return the results as an
#### Parameters
* **options?**: `Partial`&lt;`QueryExecutionOptions`&gt;
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
#### Returns
@@ -161,7 +109,7 @@ fastSearch(): this
Skip searching un-indexed data. This can make search faster, but will miss
any data that is not yet indexed.
Use lancedb.Table#optimize to index all un-indexed data.
Use [Table#optimize](Table.md#optimize) to index all un-indexed data.
#### Returns
@@ -189,7 +137,7 @@ A filter statement to be applied to this query.
`this`
#### Alias
#### See
where
@@ -213,7 +161,7 @@ fullTextSearch(query, options?): this
* **query**: `string`
* **options?**: `Partial`&lt;`FullTextSearchOptions`&gt;
* **options?**: `Partial`&lt;[`FullTextSearchOptions`](../interfaces/FullTextSearchOptions.md)&gt;
#### Returns
@@ -250,26 +198,6 @@ called then every valid row from the table will be returned.
***
### nativeExecute()
```ts
protected nativeExecute(options?): Promise<RecordBatchIterator>
```
#### Parameters
* **options?**: `Partial`&lt;`QueryExecutionOptions`&gt;
#### Returns
`Promise`&lt;`RecordBatchIterator`&gt;
#### Inherited from
[`QueryBase`](QueryBase.md).[`nativeExecute`](QueryBase.md#nativeexecute)
***
### nearestTo()
```ts
@@ -294,7 +222,7 @@ If there is more than one vector column you must use
#### Parameters
* **vector**: `IntoVector`
* **vector**: [`IntoVector`](../type-aliases/IntoVector.md)
#### Returns
@@ -427,7 +355,7 @@ Collect the results as an array of objects.
#### Parameters
* **options?**: `Partial`&lt;`QueryExecutionOptions`&gt;
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
#### Returns
@@ -449,7 +377,7 @@ Collect the results as an Arrow
#### Parameters
* **options?**: `Partial`&lt;`QueryExecutionOptions`&gt;
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
#### Returns

View File

@@ -8,6 +8,11 @@
Common methods supported by all query types
## See
- [Query](Query.md)
- [VectorQuery](VectorQuery.md)
## Extended by
- [`Query`](Query.md)
@@ -21,22 +26,6 @@ Common methods supported by all query types
- `AsyncIterable`&lt;`RecordBatch`&gt;
## Constructors
### new QueryBase()
```ts
protected new QueryBase<NativeQueryType>(inner): QueryBase<NativeQueryType>
```
#### Parameters
* **inner**: `NativeQueryType` \| `Promise`&lt;`NativeQueryType`&gt;
#### Returns
[`QueryBase`](QueryBase.md)&lt;`NativeQueryType`&gt;
## Properties
### inner
@@ -47,38 +36,6 @@ protected inner: NativeQueryType | Promise<NativeQueryType>;
## Methods
### \[asyncIterator\]()
```ts
asyncIterator: AsyncIterator<RecordBatch<any>, any, undefined>
```
#### Returns
`AsyncIterator`&lt;`RecordBatch`&lt;`any`&gt;, `any`, `undefined`&gt;
#### Implementation of
`AsyncIterable.[asyncIterator]`
***
### doCall()
```ts
protected doCall(fn): void
```
#### Parameters
* **fn**
#### Returns
`void`
***
### execute()
```ts
@@ -89,7 +46,7 @@ Execute the query and return the results as an
#### Parameters
* **options?**: `Partial`&lt;`QueryExecutionOptions`&gt;
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
#### Returns
@@ -150,7 +107,7 @@ fastSearch(): this
Skip searching un-indexed data. This can make search faster, but will miss
any data that is not yet indexed.
Use lancedb.Table#optimize to index all un-indexed data.
Use [Table#optimize](Table.md#optimize) to index all un-indexed data.
#### Returns
@@ -174,7 +131,7 @@ A filter statement to be applied to this query.
`this`
#### Alias
#### See
where
@@ -194,7 +151,7 @@ fullTextSearch(query, options?): this
* **query**: `string`
* **options?**: `Partial`&lt;`FullTextSearchOptions`&gt;
* **options?**: `Partial`&lt;[`FullTextSearchOptions`](../interfaces/FullTextSearchOptions.md)&gt;
#### Returns
@@ -223,22 +180,6 @@ called then every valid row from the table will be returned.
***
### nativeExecute()
```ts
protected nativeExecute(options?): Promise<RecordBatchIterator>
```
#### Parameters
* **options?**: `Partial`&lt;`QueryExecutionOptions`&gt;
#### Returns
`Promise`&lt;`RecordBatchIterator`&gt;
***
### offset()
```ts
@@ -314,7 +255,7 @@ Collect the results as an array of objects.
#### Parameters
* **options?**: `Partial`&lt;`QueryExecutionOptions`&gt;
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
#### Returns
@@ -332,7 +273,7 @@ Collect the results as an Arrow
#### Parameters
* **options?**: `Partial`&lt;`QueryExecutionOptions`&gt;
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
#### Returns

View File

@@ -14,21 +14,13 @@ will be freed when the Table is garbage collected. To eagerly free the cache yo
can call the `close` method. Once the Table is closed, it cannot be used for any
further operations.
Tables are created using the methods [Connection#createTable](Connection.md#createtable)
and [Connection#createEmptyTable](Connection.md#createemptytable). Existing tables are opened
using [Connection#openTable](Connection.md#opentable).
Closing a table is optional. It not closed, it will be closed when it is garbage
collected.
## Constructors
### new Table()
```ts
new Table(): Table
```
#### Returns
[`Table`](Table.md)
## Accessors
### name
@@ -216,6 +208,9 @@ Indices on vector columns will speed up vector searches.
Indices on scalar columns will speed up filtering (in both
vector and non-vector searches)
We currently don't support custom named indexes.
The index name will always be `${column}_idx`.
#### Parameters
* **column**: `string`
@@ -226,11 +221,6 @@ vector and non-vector searches)
`Promise`&lt;`void`&gt;
#### Note
We currently don't support custom named indexes,
The index name will always be `${column}_idx`
#### Examples
```ts
@@ -329,18 +319,14 @@ Drop an index from the table.
* **name**: `string`
The name of the index.
This does not delete the index from disk, it just removes it from the table.
To delete the index, run [Table#optimize](Table.md#optimize) after dropping the index.
Use [Table.listIndices](Table.md#listindices) to find the names of the indices.
#### Returns
`Promise`&lt;`void`&gt;
#### Note
This does not delete the index from disk, it just removes it from the table.
To delete the index, run [Table#optimize](Table.md#optimize) after dropping the index.
Use [Table.listIndices](Table.md#listindices) to find the names of the indices.
***
### indexStats()
@@ -404,7 +390,7 @@ List all the versions of the table
#### Returns
`Promise`&lt;`Version`[]&gt;
`Promise`&lt;[`Version`](../interfaces/Version.md)[]&gt;
***
@@ -420,7 +406,7 @@ abstract mergeInsert(on): MergeInsertBuilder
#### Returns
`MergeInsertBuilder`
[`MergeInsertBuilder`](MergeInsertBuilder.md)
***
@@ -464,7 +450,7 @@ Modeled after ``VACUUM`` in PostgreSQL.
#### Returns
`Promise`&lt;`OptimizeStats`&gt;
`Promise`&lt;[`OptimizeStats`](../interfaces/OptimizeStats.md)&gt;
***
@@ -581,7 +567,7 @@ Get the schema of the table.
abstract search(
query,
queryType?,
ftsColumns?): VectorQuery | Query
ftsColumns?): Query | VectorQuery
```
Create a search query to find the nearest neighbors
@@ -589,7 +575,7 @@ of the given query
#### Parameters
* **query**: `string` \| `IntoVector`
* **query**: `string` \| [`IntoVector`](../type-aliases/IntoVector.md)
the query, a vector or string
* **queryType?**: `string`
@@ -603,7 +589,7 @@ of the given query
#### Returns
[`VectorQuery`](VectorQuery.md) \| [`Query`](Query.md)
[`Query`](Query.md) \| [`VectorQuery`](VectorQuery.md)
***
@@ -722,7 +708,7 @@ by `query`.
#### Parameters
* **vector**: `IntoVector`
* **vector**: [`IntoVector`](../type-aliases/IntoVector.md)
#### Returns
@@ -745,38 +731,3 @@ Retrieve the version of the table
#### Returns
`Promise`&lt;`number`&gt;
***
### parseTableData()
```ts
static parseTableData(
data,
options?,
streaming?): Promise<object>
```
#### Parameters
* **data**: `TableLike` \| `Record`&lt;`string`, `unknown`&gt;[]
* **options?**: `Partial`&lt;[`CreateTableOptions`](../interfaces/CreateTableOptions.md)&gt;
* **streaming?**: `boolean` = `false`
#### Returns
`Promise`&lt;`object`&gt;
##### buf
```ts
buf: Buffer;
```
##### mode
```ts
mode: string;
```

View File

@@ -10,30 +10,14 @@ A builder used to construct a vector search
This builder can be reused to execute the query many times.
## See
[Query#nearestTo](Query.md#nearestto)
## Extends
- [`QueryBase`](QueryBase.md)&lt;`NativeVectorQuery`&gt;
## Constructors
### new VectorQuery()
```ts
new VectorQuery(inner): VectorQuery
```
#### Parameters
* **inner**: `VectorQuery` \| `Promise`&lt;`VectorQuery`&gt;
#### Returns
[`VectorQuery`](VectorQuery.md)
#### Overrides
[`QueryBase`](QueryBase.md).[`constructor`](QueryBase.md#constructors)
## Properties
### inner
@@ -48,22 +32,6 @@ protected inner: VectorQuery | Promise<VectorQuery>;
## Methods
### \[asyncIterator\]()
```ts
asyncIterator: AsyncIterator<RecordBatch<any>, any, undefined>
```
#### Returns
`AsyncIterator`&lt;`RecordBatch`&lt;`any`&gt;, `any`, `undefined`&gt;
#### Inherited from
[`QueryBase`](QueryBase.md).[`[asyncIterator]`](QueryBase.md#%5Basynciterator%5D)
***
### addQueryVector()
```ts
@@ -72,7 +40,7 @@ addQueryVector(vector): VectorQuery
#### Parameters
* **vector**: `IntoVector`
* **vector**: [`IntoVector`](../type-aliases/IntoVector.md)
#### Returns
@@ -179,26 +147,6 @@ By default "l2" is used.
***
### doCall()
```ts
protected doCall(fn): void
```
#### Parameters
* **fn**
#### Returns
`void`
#### Inherited from
[`QueryBase`](QueryBase.md).[`doCall`](QueryBase.md#docall)
***
### ef()
```ts
@@ -233,7 +181,7 @@ Execute the query and return the results as an
#### Parameters
* **options?**: `Partial`&lt;`QueryExecutionOptions`&gt;
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
#### Returns
@@ -302,7 +250,7 @@ fastSearch(): this
Skip searching un-indexed data. This can make search faster, but will miss
any data that is not yet indexed.
Use lancedb.Table#optimize to index all un-indexed data.
Use [Table#optimize](Table.md#optimize) to index all un-indexed data.
#### Returns
@@ -330,7 +278,7 @@ A filter statement to be applied to this query.
`this`
#### Alias
#### See
where
@@ -354,7 +302,7 @@ fullTextSearch(query, options?): this
* **query**: `string`
* **options?**: `Partial`&lt;`FullTextSearchOptions`&gt;
* **options?**: `Partial`&lt;[`FullTextSearchOptions`](../interfaces/FullTextSearchOptions.md)&gt;
#### Returns
@@ -391,26 +339,6 @@ called then every valid row from the table will be returned.
***
### nativeExecute()
```ts
protected nativeExecute(options?): Promise<RecordBatchIterator>
```
#### Parameters
* **options?**: `Partial`&lt;`QueryExecutionOptions`&gt;
#### Returns
`Promise`&lt;`RecordBatchIterator`&gt;
#### Inherited from
[`QueryBase`](QueryBase.md).[`nativeExecute`](QueryBase.md#nativeexecute)
***
### nprobes()
```ts
@@ -625,7 +553,7 @@ Collect the results as an array of objects.
#### Parameters
* **options?**: `Partial`&lt;`QueryExecutionOptions`&gt;
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
#### Returns
@@ -647,7 +575,7 @@ Collect the results as an Arrow
#### Parameters
* **options?**: `Partial`&lt;`QueryExecutionOptions`&gt;
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
#### Returns