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
+49
View File
@@ -0,0 +1,49 @@
[**@lancedb/lancedb**](../README.md) • **Docs**
***
[@lancedb/lancedb](../globals.md) / CompactionStats
# Interface: CompactionStats
Statistics about a compaction operation.
## Properties
### filesAdded
```ts
filesAdded: number;
```
The number of new, compacted data files added
***
### filesRemoved
```ts
filesRemoved: number;
```
The number of data files removed
***
### fragmentsAdded
```ts
fragmentsAdded: number;
```
The number of new, compacted fragments added
***
### fragmentsRemoved
```ts
fragmentsRemoved: number;
```
The number of fragments removed
+103
View File
@@ -0,0 +1,103 @@
[**@lancedb/lancedb**](../README.md) • **Docs**
***
[@lancedb/lancedb](../globals.md) / FtsOptions
# Interface: FtsOptions
Options to create a full text search index
## Properties
### asciiFolding?
```ts
optional asciiFolding: boolean;
```
whether to remove punctuation
***
### baseTokenizer?
```ts
optional baseTokenizer: "raw" | "simple" | "whitespace";
```
The tokenizer to use when building the index.
The default is "simple".
The following tokenizers are available:
"simple" - Simple tokenizer. This tokenizer splits the text into tokens using whitespace and punctuation as a delimiter.
"whitespace" - Whitespace tokenizer. This tokenizer splits the text into tokens using whitespace as a delimiter.
"raw" - Raw tokenizer. This tokenizer does not split the text into tokens and indexes the entire text as a single token.
***
### language?
```ts
optional language: string;
```
language for stemming and stop words
this is only used when `stem` or `remove_stop_words` is true
***
### lowercase?
```ts
optional lowercase: boolean;
```
whether to lowercase tokens
***
### maxTokenLength?
```ts
optional maxTokenLength: number;
```
maximum token length
tokens longer than this length will be ignored
***
### removeStopWords?
```ts
optional removeStopWords: boolean;
```
whether to remove stop words
***
### stem?
```ts
optional stem: boolean;
```
whether to stem tokens
***
### withPosition?
```ts
optional withPosition: boolean;
```
Whether to build the index with positions.
True by default.
If set to false, the index will not store the positions of the tokens in the text,
which will make the index smaller and faster to build, but will not support phrase queries.
@@ -0,0 +1,22 @@
[**@lancedb/lancedb**](../README.md) • **Docs**
***
[@lancedb/lancedb](../globals.md) / FullTextSearchOptions
# Interface: FullTextSearchOptions
Options that control the behavior of a full text search
## Properties
### columns?
```ts
optional columns: string | string[];
```
The columns to search
If not specified, all indexed columns will be searched.
For now, only one column can be searched.
+149
View File
@@ -0,0 +1,149 @@
[**@lancedb/lancedb**](../README.md) • **Docs**
***
[@lancedb/lancedb](../globals.md) / HnswPqOptions
# Interface: HnswPqOptions
Options to create an `HNSW_PQ` index
## Properties
### distanceType?
```ts
optional distanceType: "l2" | "cosine" | "dot";
```
The distance metric used to train the index.
Default value is "l2".
The following distance types are available:
"l2" - Euclidean distance. This is a very common distance metric that
accounts for both magnitude and direction when determining the distance
between vectors. L2 distance has a range of [0, ∞).
"cosine" - Cosine distance. Cosine distance is a distance metric
calculated from the cosine similarity between two vectors. Cosine
similarity is a measure of similarity between two non-zero vectors of an
inner product space. It is defined to equal the cosine of the angle
between them. Unlike L2, the cosine distance is not affected by the
magnitude of the vectors. Cosine distance has a range of [0, 2].
"dot" - Dot product. Dot distance is the dot product of two vectors. Dot
distance has a range of (-∞, ∞). If the vectors are normalized (i.e. their
L2 norm is 1), then dot distance is equivalent to the cosine distance.
***
### efConstruction?
```ts
optional efConstruction: number;
```
The number of candidates to evaluate during the construction of the HNSW graph.
The default value is 300.
This value controls the tradeoff between build speed and accuracy.
The higher the value the more accurate the build but the slower it will be.
150 to 300 is the typical range. 100 is a minimum for good quality search
results. In most cases, there is no benefit to setting this higher than 500.
This value should be set to a value that is not less than `ef` in the search phase.
***
### m?
```ts
optional m: number;
```
The number of neighbors to select for each vector in the HNSW graph.
The default value is 20.
This value controls the tradeoff between search speed and accuracy.
The higher the value the more accurate the search but the slower it will be.
***
### maxIterations?
```ts
optional maxIterations: number;
```
Max iterations to train kmeans.
The default value is 50.
When training an IVF index we use kmeans to calculate the partitions. This parameter
controls how many iterations of kmeans to run.
Increasing this might improve the quality of the index but in most cases the parameter
is unused because kmeans will converge with fewer iterations. The parameter is only
used in cases where kmeans does not appear to converge. In those cases it is unlikely
that setting this larger will lead to the index converging anyways.
***
### numPartitions?
```ts
optional numPartitions: number;
```
The number of IVF partitions to create.
For HNSW, we recommend a small number of partitions. Setting this to 1 works
well for most tables. For very large tables, training just one HNSW graph
will require too much memory. Each partition becomes its own HNSW graph, so
setting this value higher reduces the peak memory use of training.
***
### numSubVectors?
```ts
optional numSubVectors: number;
```
Number of sub-vectors of PQ.
This value controls how much the vector is compressed during the quantization step.
The more sub vectors there are the less the vector is compressed. The default is
the dimension of the vector divided by 16. If the dimension is not evenly divisible
by 16 we use the dimension divded by 8.
The above two cases are highly preferred. Having 8 or 16 values per subvector allows
us to use efficient SIMD instructions.
If the dimension is not visible by 8 then we use 1 subvector. This is not ideal and
will likely result in poor performance.
***
### sampleRate?
```ts
optional sampleRate: number;
```
The rate used to calculate the number of training vectors for kmeans.
Default value is 256.
When an IVF index is trained, we need to calculate partitions. These are groups
of vectors that are similar to each other. To do this we use an algorithm called kmeans.
Running kmeans on a large dataset can be slow. To speed this up we run kmeans on a
random sample of the data. This parameter controls the size of the sample. The total
number of vectors used to train the index is `sample_rate * num_partitions`.
Increasing this value might improve the quality of the index but in most cases the
default should be sufficient.
+128
View File
@@ -0,0 +1,128 @@
[**@lancedb/lancedb**](../README.md) • **Docs**
***
[@lancedb/lancedb](../globals.md) / HnswSqOptions
# Interface: HnswSqOptions
Options to create an `HNSW_SQ` index
## Properties
### distanceType?
```ts
optional distanceType: "l2" | "cosine" | "dot";
```
The distance metric used to train the index.
Default value is "l2".
The following distance types are available:
"l2" - Euclidean distance. This is a very common distance metric that
accounts for both magnitude and direction when determining the distance
between vectors. L2 distance has a range of [0, ∞).
"cosine" - Cosine distance. Cosine distance is a distance metric
calculated from the cosine similarity between two vectors. Cosine
similarity is a measure of similarity between two non-zero vectors of an
inner product space. It is defined to equal the cosine of the angle
between them. Unlike L2, the cosine distance is not affected by the
magnitude of the vectors. Cosine distance has a range of [0, 2].
"dot" - Dot product. Dot distance is the dot product of two vectors. Dot
distance has a range of (-∞, ∞). If the vectors are normalized (i.e. their
L2 norm is 1), then dot distance is equivalent to the cosine distance.
***
### efConstruction?
```ts
optional efConstruction: number;
```
The number of candidates to evaluate during the construction of the HNSW graph.
The default value is 300.
This value controls the tradeoff between build speed and accuracy.
The higher the value the more accurate the build but the slower it will be.
150 to 300 is the typical range. 100 is a minimum for good quality search
results. In most cases, there is no benefit to setting this higher than 500.
This value should be set to a value that is not less than `ef` in the search phase.
***
### m?
```ts
optional m: number;
```
The number of neighbors to select for each vector in the HNSW graph.
The default value is 20.
This value controls the tradeoff between search speed and accuracy.
The higher the value the more accurate the search but the slower it will be.
***
### maxIterations?
```ts
optional maxIterations: number;
```
Max iterations to train kmeans.
The default value is 50.
When training an IVF index we use kmeans to calculate the partitions. This parameter
controls how many iterations of kmeans to run.
Increasing this might improve the quality of the index but in most cases the parameter
is unused because kmeans will converge with fewer iterations. The parameter is only
used in cases where kmeans does not appear to converge. In those cases it is unlikely
that setting this larger will lead to the index converging anyways.
***
### numPartitions?
```ts
optional numPartitions: number;
```
The number of IVF partitions to create.
For HNSW, we recommend a small number of partitions. Setting this to 1 works
well for most tables. For very large tables, training just one HNSW graph
will require too much memory. Each partition becomes its own HNSW graph, so
setting this value higher reduces the peak memory use of training.
***
### sampleRate?
```ts
optional sampleRate: number;
```
The rate used to calculate the number of training vectors for kmeans.
Default value is 256.
When an IVF index is trained, we need to calculate partitions. These are groups
of vectors that are similar to each other. To do this we use an algorithm called kmeans.
Running kmeans on a large dataset can be slow. To speed this up we run kmeans on a
random sample of the data. This parameter controls the size of the sample. The total
number of vectors used to train the index is `sample_rate * num_partitions`.
Increasing this value might improve the quality of the index but in most cases the
default should be sufficient.
@@ -0,0 +1,40 @@
[**@lancedb/lancedb**](../README.md) • **Docs**
***
[@lancedb/lancedb](../globals.md) / OpenTableOptions
# Interface: OpenTableOptions
## Properties
### indexCacheSize?
```ts
optional indexCacheSize: number;
```
Set the size of the index cache, specified as a number of entries
The exact meaning of an "entry" will depend on the type of index:
- IVF: there is one entry for each IVF partition
- BTREE: there is one entry for the entire index
This cache applies to the entire opened table, across all indices.
Setting this value higher will increase performance on larger datasets
at the expense of more RAM
***
### storageOptions?
```ts
optional storageOptions: Record<string, string>;
```
Configuration for object storage.
Options already set on the connection will be inherited by the table,
but can be overridden here.
The available options are described at https://lancedb.github.io/lancedb/guides/storage/
+29
View File
@@ -0,0 +1,29 @@
[**@lancedb/lancedb**](../README.md) • **Docs**
***
[@lancedb/lancedb](../globals.md) / OptimizeStats
# Interface: OptimizeStats
Statistics about an optimize operation
## Properties
### compaction
```ts
compaction: CompactionStats;
```
Statistics about the compaction operation
***
### prune
```ts
prune: RemovalStats;
```
Statistics about the removal operation
@@ -0,0 +1,22 @@
[**@lancedb/lancedb**](../README.md) • **Docs**
***
[@lancedb/lancedb](../globals.md) / QueryExecutionOptions
# Interface: QueryExecutionOptions
Options that control the behavior of a particular query execution
## Properties
### maxBatchLength?
```ts
optional maxBatchLength: number;
```
The maximum number of rows to return in a single batch
Batches may have fewer rows if the underlying data is stored
in smaller chunks.
+29
View File
@@ -0,0 +1,29 @@
[**@lancedb/lancedb**](../README.md) • **Docs**
***
[@lancedb/lancedb](../globals.md) / RemovalStats
# Interface: RemovalStats
Statistics about a cleanup operation
## Properties
### bytesRemoved
```ts
bytesRemoved: number;
```
The number of bytes removed
***
### oldVersionsRemoved
```ts
oldVersionsRemoved: number;
```
The number of old versions removed
+31
View File
@@ -0,0 +1,31 @@
[**@lancedb/lancedb**](../README.md) • **Docs**
***
[@lancedb/lancedb](../globals.md) / Version
# Interface: Version
## Properties
### metadata
```ts
metadata: Record<string, string>;
```
***
### timestamp
```ts
timestamp: Date;
```
***
### version
```ts
version: number;
```
-19
View File
@@ -1,19 +0,0 @@
[**@lancedb/lancedb**](../README.md) • **Docs**
***
[@lancedb/lancedb](../globals.md) / WriteOptions
# Interface: WriteOptions
Write options when creating a Table.
## Properties
### mode?
```ts
optional mode: WriteMode;
```
Write mode for writing to a table.