Class: TableDefinition<DocumentType, Indexes, SearchIndexes, VectorIndexes>
server.TableDefinition
The definition of a table within a schema.
This should be produced by using defineTable.
Type parameters
Name | Type |
---|---|
DocumentType | extends Validator <any , any , any > = Validator <any , any , any > |
Indexes | extends GenericTableIndexes = |
SearchIndexes | extends GenericTableSearchIndexes = |
VectorIndexes | extends GenericTableVectorIndexes = |
Properties
validator
• validator: DocumentType
Defined in
Methods
indexes
▸ ** indexes**(): { indexDescriptor
: string
; fields
: string
[] }[]
This API is experimental: it may change or disappear.
Returns indexes defined on this table. Intended for the advanced use cases of dynamically deciding which index to use for a query. If you think you need this, please chime in on ths issue in the Convex JS GitHub repo. https://github.com/get-convex/convex-js/issues/49
Returns
{ indexDescriptor
: string
; fields
: string
[] }[]
Defined in
index
▸ index<IndexName
, FirstFieldPath
, RestFieldPaths
>(name
, indexConfig
): TableDefinition
<DocumentType
, Expand
<Indexes
& Record
<IndexName
, [FirstFieldPath
, ...RestFieldPaths[], "_creationTime"
]>>, SearchIndexes
, VectorIndexes
>
Define an index on this table.
To learn about indexes, see Defining Indexes.
Type parameters
Name | Type |
---|---|
IndexName | extends string |
FirstFieldPath | extends any |
RestFieldPaths | extends ExtractFieldPaths <DocumentType >[] |
Parameters
Name | Type | Description |
---|---|---|
name | IndexName | The name of the index. |
indexConfig | Object | The index configuration object. |
indexConfig.fields | [FirstFieldPath , ...RestFieldPaths[]] | The fields to index, in order. Must specify at least one field. |
indexConfig.staged? | false | Whether the index should be staged. For large tables, index backfill can be slow. Staging an index allows you to push the schema and enable the index later. If staged is true , the index will be staged and will not be enabled until the staged flag is removed. Staged indexes do not block push completion. Staged indexes cannot be used in queries. |
Returns
TableDefinition
<DocumentType
, Expand
<Indexes
& Record
<IndexName
, [FirstFieldPath
, ...RestFieldPaths[], "_creationTime"
]>>, SearchIndexes
, VectorIndexes
>
A TableDefinition with this index included.
Defined in
▸ index<IndexName
, FirstFieldPath
, RestFieldPaths
>(name
, fields
): TableDefinition
<DocumentType
, Expand
<Indexes
& Record
<IndexName
, [FirstFieldPath
, ...RestFieldPaths[], "_creationTime"
]>>, SearchIndexes
, VectorIndexes
>
Define an index on this table.
To learn about indexes, see Defining Indexes.
Type parameters
Name | Type |
---|---|
IndexName | extends string |
FirstFieldPath | extends any |
RestFieldPaths | extends ExtractFieldPaths <DocumentType >[] |
Parameters
Name | Type | Description |
---|---|---|
name | IndexName | The name of the index. |
fields | [FirstFieldPath , ...RestFieldPaths[]] | The fields to index, in order. Must specify at least one field. |
Returns
TableDefinition
<DocumentType
, Expand
<Indexes
& Record
<IndexName
, [FirstFieldPath
, ...RestFieldPaths[], "_creationTime"
]>>, SearchIndexes
, VectorIndexes
>
A TableDefinition with this index included.
Defined in
▸ index<IndexName
, FirstFieldPath
, RestFieldPaths
>(name
, indexConfig
): TableDefinition
<DocumentType
, Indexes
, SearchIndexes
, VectorIndexes
>
Define a staged index on this table.
For large tables, index backfill can be slow. Staging an index allows you to push the schema and enable the index later.
If staged
is true
, the index will be staged and will not be enabled
until the staged flag is removed. Staged indexes do not block push
completion. Staged indexes cannot be used in queries.
To learn about indexes, see Defining Indexes.
Type parameters
Name | Type |
---|---|
IndexName | extends string |
FirstFieldPath | extends any |
RestFieldPaths | extends ExtractFieldPaths <DocumentType >[] |
Parameters
Name | Type | Description |
---|---|---|
name | IndexName | The name of the index. |
indexConfig | Object | The index configuration object. |
indexConfig.fields | [FirstFieldPath , ...RestFieldPaths[]] | The fields to index, in order. Must specify at least one field. |
indexConfig.staged | true | Whether the index should be staged. For large tables, index backfill can be slow. Staging an index allows you to push the schema and enable the index later. If staged is true , the index will be staged and will not be enabled until the staged flag is removed. Staged indexes do not block push completion. Staged indexes cannot be used in queries. |
Returns
TableDefinition
<DocumentType
, Indexes
, SearchIndexes
, VectorIndexes
>
A TableDefinition with this index included.
Defined in
searchIndex
▸ searchIndex<IndexName
, SearchField
, FilterFields
>(name
, indexConfig
): TableDefinition
<DocumentType
, 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
Name | Type |
---|---|
IndexName | extends string |
SearchField | extends any |
FilterFields | extends any = never |
Parameters
Name | Type | Description |
---|---|---|
name | IndexName | The name of the index. |
indexConfig | Object | The search index configuration object. |
indexConfig.searchField | SearchField | The 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. |
indexConfig.staged? | false | Whether the index should be staged. For large tables, index backfill can be slow. Staging an index allows you to push the schema and enable the index later. If staged is true , the index will be staged and will not be enabled until the staged flag is removed. Staged indexes do not block push completion. Staged indexes cannot be used in queries. |
Returns
TableDefinition
<DocumentType
, Indexes
, Expand
<SearchIndexes
& Record
<IndexName
, { searchField
: SearchField
; filterFields
: FilterFields
}>>, VectorIndexes
>
A TableDefinition with this search index included.
Defined in
▸ searchIndex<IndexName
, SearchField
, FilterFields
>(name
, indexConfig
): TableDefinition
<DocumentType
, Indexes
, SearchIndexes
, VectorIndexes
>
Define a staged search index on this table.
For large tables, index backfill can be slow. Staging an index allows you to push the schema and enable the index later.
If staged
is true
, the index will be staged and will not be enabled
until the staged flag is removed. Staged indexes do not block push
completion. Staged indexes cannot be used in queries.
To learn about search indexes, see Search.
Type parameters
Name | Type |
---|---|
IndexName | extends string |
SearchField | extends any |
FilterFields | extends any = never |
Parameters
Name | Type | Description |
---|---|---|
name | IndexName | The name of the index. |
indexConfig | Object | The search index configuration object. |
indexConfig.searchField | SearchField | The 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. |
indexConfig.staged | true | Whether the index should be staged. For large tables, index backfill can be slow. Staging an index allows you to push the schema and enable the index later. If staged is true , the index will be staged and will not be enabled until the staged flag is removed. Staged indexes do not block push completion. Staged indexes cannot be used in queries. |
Returns
TableDefinition
<DocumentType
, Indexes
, SearchIndexes
, VectorIndexes
>
A TableDefinition with this search index included.
Defined in
vectorIndex
▸ vectorIndex<IndexName
, VectorField
, FilterFields
>(name
, indexConfig
): TableDefinition
<DocumentType
, 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
Name | Type |
---|---|
IndexName | extends string |
VectorField | extends any |
FilterFields | extends any = never |
Parameters
Name | Type | Description |
---|---|---|
name | IndexName | The name of the index. |
indexConfig | Object | The vector index configuration object. |
indexConfig.vectorField | VectorField | The field to index for vector search. This must be a field of type v.array(v.float64()) (or a union) |
indexConfig.dimensions | number | The 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. |
indexConfig.staged? | false | Whether the index should be staged. For large tables, index backfill can be slow. Staging an index allows you to push the schema and enable the index later. If staged is true , the index will be staged and will not be enabled until the staged flag is removed. Staged indexes do not block push completion. Staged indexes cannot be used in queries. |
Returns
TableDefinition
<DocumentType
, Indexes
, SearchIndexes
, Expand
<VectorIndexes
& Record
<IndexName
, { vectorField
: VectorField
; dimensions
: number
; filterFields
: FilterFields
}>>>
A TableDefinition with this vector index included.
Defined in
▸ vectorIndex<IndexName
, VectorField
, FilterFields
>(name
, indexConfig
): TableDefinition
<DocumentType
, Indexes
, SearchIndexes
, VectorIndexes
>
Define a staged vector index on this table.
For large tables, index backfill can be slow. Staging an index allows you to push the schema and enable the index later.
If staged
is true
, the index will be staged and will not be enabled
until the staged flag is removed. Staged indexes do not block push
completion. Staged indexes cannot be used in queries.
To learn about vector indexes, see Vector Search.
Type parameters
Name | Type |
---|---|
IndexName | extends string |
VectorField | extends any |
FilterFields | extends any = never |
Parameters
Name | Type | Description |
---|---|---|
name | IndexName | The name of the index. |
indexConfig | Object | The vector index configuration object. |
indexConfig.vectorField | VectorField | The field to index for vector search. This must be a field of type v.array(v.float64()) (or a union) |
indexConfig.dimensions | number | The 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. |
indexConfig.staged | true | Whether the index should be staged. For large tables, index backfill can be slow. Staging an index allows you to push the schema and enable the index later. If staged is true , the index will be staged and will not be enabled until the staged flag is removed. Staged indexes do not block push completion. Staged indexes cannot be used in queries. |
Returns
TableDefinition
<DocumentType
, Indexes
, SearchIndexes
, VectorIndexes
>
A TableDefinition with this vector index included.
Defined in
self
▸ Protected
self(): TableDefinition
<DocumentType
, Indexes
, SearchIndexes
, VectorIndexes
>
Work around for https://github.com/microsoft/TypeScript/issues/57035
Returns
TableDefinition
<DocumentType
, Indexes
, SearchIndexes
, VectorIndexes
>