interfaces

package
v0.13.0-prerelease-test-4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 17, 2024 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SequentialManifestType = "sequential"
	HnswManifestType       = "hnsw"
)

Variables

View Source
var (
	ErrInvalidVectorIndexType = fmt.Errorf("invalid vector index type")
	ErrInvalidVectorIndexName = fmt.Errorf("invalid vector index name")
)

Functions

This section is empty.

Types

type CollectionNamespace

type CollectionNamespace interface {
	GetCollectionName() string

	GetNamespace() string

	// GetVectorIndexMap returns the map of searchMethod to VectorIndex
	GetVectorIndexMap() map[string]*VectorIndexWrapper

	// GetVectorIndex returns the VectorIndex for a given searchMethod
	GetVectorIndex(ctx context.Context, searchMethod string) (*VectorIndexWrapper, error)

	// SetVectorIndex sets the VectorIndex for a given searchMethod
	SetVectorIndex(ctx context.Context, searchMethod string, index *VectorIndexWrapper) error

	// DeleteVectorIndex deletes the VectorIndex for a given searchMethod
	DeleteVectorIndex(ctx context.Context, searchMethod string) error

	// InsertTexts will add texts and keys into the existing VectorIndex
	InsertTexts(ctx context.Context, keys []string, texts []string, labelsArr [][]string) error

	// InsertText will add a text and key into the existing VectorIndex
	InsertText(ctx context.Context, key string, text string, labels []string) error

	InsertTextsToMemory(ctx context.Context, ids []int64, keys []string, texts []string, labelsArr [][]string) error

	InsertTextToMemory(ctx context.Context, id int64, key string, text string, labels []string) error

	// DeleteText will remove a text and key from the existing VectorIndex
	DeleteText(ctx context.Context, key string) error

	// GetText will return the text for a given key
	GetText(ctx context.Context, key string) (string, error)

	// GetLabel will return the label for a given key
	GetLabels(ctx context.Context, key string) ([]string, error)

	// GetTextMap returns the map of key to text
	GetTextMap(ctx context.Context) (map[string]string, error)

	// GetLabelMap returns the map of key to label
	GetLabelsMap(ctx context.Context) (map[string][]string, error)

	//Len returns the number of texts in the collection
	Len(ctx context.Context) (int, error)

	// GetExternalId returns the external id for a given key
	GetExternalId(ctx context.Context, key string) (int64, error)

	GetCheckpointId(ctx context.Context) (int64, error)
}

type UnmarshalSequentialVectorIndex

type UnmarshalSequentialVectorIndex struct {
	VectorIndex sequential.SequentialVectorIndex `json:"VectorIndex"`
}

type VectorIndex

type VectorIndex interface {
	GetSearchMethodName() string

	SetEmbedderName(embedderName string) error

	GetEmbedderName() string

	// Search will find the keys for a given set of vectors based on the
	// input query, limiting to the specified maximum number of results.
	// The filter parameter indicates that we might discard certain parameters
	// based on some input criteria. The maxResults count is counted *after*
	// being filtered. In other words, we only count those results that had not
	// been filtered out.
	Search(ctx context.Context, query []float32,
		maxResults int,
		filter index.SearchFilter) (utils.MaxTupleHeap, error)

	// SearchWithKey will find the keys for a given set of vectors based on the
	// input queryKey, limiting to the specified maximum number of results.
	// The filter parameter indicates that we might discard certain parameters
	// based on some input criteria. The maxResults count is counted *after*
	// being filtered. In other words, we only count those results that had not
	// been filtered out.
	SearchWithKey(ctx context.Context, queryKey string,
		maxResults int,
		filter index.SearchFilter) (utils.MaxTupleHeap, error)

	// Insert Vectors will add vectors and keys into the existing VectorIndex
	InsertVectors(ctx context.Context, textIds []int64, vecs [][]float32) error

	// Insert will add a vector and key into the existing VectorIndex. If
	// key already exists, it should throw an error to not insert duplicate keys
	InsertVector(ctx context.Context, textId int64, vec []float32) error

	// InsertVectorsToMemory will add vectors and keys into the existing VectorIndex
	InsertVectorsToMemory(ctx context.Context, textIds []int64, vectorIds []int64, keys []string, vecs [][]float32) error

	// InsertVectorToMemory will add a vector and key into the existing VectorIndex. If
	// key already exists, it should throw an error to not insert duplicate keys
	InsertVectorToMemory(ctx context.Context, textId, vectorId int64, key string, vec []float32) error

	// Delete will remove a vector and key from the existing VectorIndex. If
	// key does not exist, it should throw an error to not delete non-existent keys
	DeleteVector(ctx context.Context, textId int64, key string) error

	// GetVector will return the vector for a given key
	GetVector(ctx context.Context, key string) ([]float32, error)

	GetCheckpointId(ctx context.Context) (int64, error)

	GetLastIndexedTextId(ctx context.Context) (int64, error)
}

A VectorIndex can be used to Search for vectors and add vectors to an index.

type VectorIndexWrapper

type VectorIndexWrapper struct {
	Type string `json:"Type"`
	VectorIndex
}

func (*VectorIndexWrapper) UnmarshalJSON

func (v *VectorIndexWrapper) UnmarshalJSON(data []byte) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL