VectorItem

Represents a single vector with its associated data.
type VectorItem struct {
    Id       string                 `json:"id"`                // Unique identifier
    Vector   []float32              `json:"vector,omitempty"`  // Vector data
    Contents NullableContents       `json:"contents,omitempty"` // Optional text content  
    Metadata map[string]interface{} `json:"metadata,omitempty"` // Optional metadata
}

Fields

FieldTypeDescription
IdstringUnique identifier for the vector (required)
Vector[]float32The vector data as float32 slice
ContentsNullableContentsOptional text content associated with the vector
Metadatamap[string]interface{}Optional key-value pairs for filtering and retrieval

CreateIndexParams

Parameters for creating a new encrypted vector index.
type CreateIndexParams struct {
    IndexName      string     `json:"index_name"`            // Unique identifier for the index
    IndexKey       []byte     `json:"index_key"`             // 32-byte encryption key
    IndexConfig    IndexModel `json:"index_config,omitempty"` // Index configuration
    Metric         *string    `json:"metric,omitempty"`       // Distance metric
    EmbeddingModel *string    `json:"embedding_model,omitempty"` // Associated embedding model
}

Fields

FieldTypeRequiredDescription
IndexNamestringYesUnique identifier for the index
IndexKey[]byteYes32-byte encryption key (use GenerateKey() to create)
IndexConfigIndexModelNoIndex configuration (IVF, IVFFlat, or IVFPQ)
Metric*stringNoDistance metric (“euclidean”, “cosine”, “dot_product”)
EmbeddingModel*stringNoName of embedding model to associate

Index Configuration Types

IndexModel Interface

All index configuration types implement this interface.
type IndexModel interface {
    ToIndexConfig() *internal.IndexConfig
}

IVF Configuration

Create an IVF (Inverted File) index configuration.
func IndexIVF(dimension int32) *indexIVF

IVFFlat Configuration

Create an IVFFlat (Inverted File Flat) index configuration for higher accuracy.
func IndexIVFFlat(dimension int32) *indexIVFFlat

IVFPQ Configuration

Create an IVFPQ (Inverted File with Product Quantization) index configuration for memory efficiency.
func IndexIVFPQ(dimension int32, pqDim int32, pqBits int32) *indexIVFPQ

Parameters

ParameterTypeDescription
dimensionint32The dimensionality of vectors that will be stored
pqDimint32Product quantization dimension (typically dimension/8 or dimension/16)
pqBitsint32Bits per PQ code (typically 8, higher = more accurate but larger)

Response Types

QueryResponse

Response from similarity search operations.
type QueryResponse = internal.QueryResponse
Contains search results with similar vectors and their metadata.

QueryResultItem

A single result from a similarity search query.
type QueryResultItem = internal.QueryResultItem
Represents one matching vector with its similarity score and metadata.

GetResponse

Response from Get operations containing retrieved vectors.
type GetResponse = internal.GetResponseModel

ListIDsResponse

Response from ListIDs operations.
type ListIDsResponse = internal.ListIDsResponse  
Contains the list of vector IDs in the index.

TrainParams

Parameters for training an encrypted vector index.
type TrainParams struct {
    BatchSize  *int32   `json:"batch_size,omitempty"`  // Number of vectors per training batch
    MaxIters   *int32   `json:"max_iters,omitempty"`   // Maximum training iterations  
    Tolerance  *float64 `json:"tolerance,omitempty"`   // Convergence tolerance
    MaxMemory  *int32   `json:"max_memory,omitempty"`  // Maximum memory usage in MB
    NLists     *int32   `json:"n_lists,omitempty"`     // Number of IVF clusters
}

Fields

FieldTypeDescription
BatchSize*int32Number of vectors processed per training batch (default: 2048)
MaxIters*int32Maximum training iterations (default: 100)
Tolerance*float64Convergence tolerance for training (default: 1e-6)
MaxMemory*int32Maximum memory usage in MB, 0 = no limit (default: 0)
NLists*int32Number of IVF clusters, 0 = auto-determine (default: 0)