Skip to main content

Class: TableDefinition<Document, FieldPaths, Indexes, SearchIndexes, VectorIndexes>

server.TableDefinition

The definition of a table within a schema.

This should be produced by using defineTable.

Type parameters

NameType
Documentextends GenericDocument = GenericDocument
FieldPathsextends string = string
Indexesextends GenericTableIndexes =
SearchIndexesextends GenericTableSearchIndexes =
VectorIndexesextends GenericTableVectorIndexes =

Methods

index

index<IndexName, FirstFieldPath, RestFieldPaths>(name, fields): TableDefinition<Document, FieldPaths, Expand<Indexes & Record<IndexName, [FirstFieldPath, ...RestFieldPaths[], "_creationTime"]>>, SearchIndexes, VectorIndexes>

Define an index on this table.

To learn about indexes, see Defining Indexes.

Type parameters

NameType
IndexNameextends string
FirstFieldPathextends string
RestFieldPathsextends FieldPaths[]

Parameters

NameTypeDescription
nameIndexNameThe name of the index.
fields[FirstFieldPath, ...RestFieldPaths[]]The fields to index, in order. Must specify at least one field.

Returns

TableDefinition<Document, FieldPaths, Expand<Indexes & Record<IndexName, [FirstFieldPath, ...RestFieldPaths[], "_creationTime"]>>, SearchIndexes, VectorIndexes>

A TableDefinition with this index included.

Defined in

server/schema.ts:187


searchIndex

searchIndex<IndexName, SearchField, FilterFields>(name, indexConfig): TableDefinition<Document, FieldPaths, Indexes, Expand<SearchIndexes & Record<IndexName, { searchField: SearchField ; filterFields: FilterFields }>>, VectorIndexes>

Define a search index on this table.

To learn about search indexes, see Search.

Type parameters

NameType
IndexNameextends string
SearchFieldextends string
FilterFieldsextends string = never

Parameters

NameTypeDescription
nameIndexNameThe name of the index.
indexConfigObjectThe search index configuration object.
indexConfig.searchFieldSearchFieldThe field to index for full text search. This must be a field of type string.
indexConfig.filterFields?FilterFields[]Additional fields to index for fast filtering when running search queries.

Returns

TableDefinition<Document, FieldPaths, Indexes, Expand<SearchIndexes & Record<IndexName, { searchField: SearchField ; filterFields: FilterFields }>>, VectorIndexes>

A TableDefinition with this search index included.

Defined in

server/schema.ts:222


vectorIndex

vectorIndex<IndexName, VectorField, FilterFields>(name, indexConfig): TableDefinition<Document, FieldPaths, Indexes, SearchIndexes, Expand<VectorIndexes & Record<IndexName, { vectorField: VectorField ; dimensions: number ; filterFields: FilterFields }>>>

Define a vector index on this table.

To learn about vector indexes, see Vector Search.

Type parameters

NameType
IndexNameextends string
VectorFieldextends string
FilterFieldsextends string = never

Parameters

NameTypeDescription
nameIndexNameThe name of the index.
indexConfigObjectThe vector index configuration object.
indexConfig.vectorFieldVectorFieldThe field to index for vector search. This must be a field of type v.array(v.float64()) (or a union)
indexConfig.dimensionsnumberThe length of the vectors indexed. This must be between 2 and 2048 inclusive.
indexConfig.filterFields?FilterFields[]Additional fields to index for fast filtering when running vector searches.

Returns

TableDefinition<Document, FieldPaths, Indexes, SearchIndexes, Expand<VectorIndexes & Record<IndexName, { vectorField: VectorField ; dimensions: number ; filterFields: FilterFields }>>>

A TableDefinition with this vector index included.

Defined in

server/schema.ts:264


self

Protected self(): TableDefinition<Document, FieldPaths, Indexes, SearchIndexes, VectorIndexes>

Work around for https://github.com/microsoft/TypeScript/issues/57035

Returns

TableDefinition<Document, FieldPaths, Indexes, SearchIndexes, VectorIndexes>

Defined in

server/schema.ts:300