qdrant

package
v0.34.0 Latest Latest
Warning

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

Go to latest
Published: Mar 10, 2026 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultBatchSize      = 100
	MaxBatchSize          = 1000
	DefaultMaxConcurrency = 8
	DefaultRetryAttempts  = 3
	DefaultRetryDelay     = 2 * time.Second
	DefaultMaxRetryDelay  = 30 * time.Second
	DefaultRetryJitter    = 1 * time.Second

	// DefaultDenseVectorName is the implicit name for the default dense vector in Qdrant.
	DefaultDenseVectorName = ""
)

Variables

View Source
var (
	ErrMissingEmbedder       = errors.New("qdrant: embedder is required but not provided")
	ErrMissingCollectionName = errors.New("qdrant: collection name is required")
	ErrInvalidNumDocuments   = errors.New("qdrant: number of documents must be positive")
	ErrConnectionFailed      = errors.New("qdrant: connection failed")
	ErrInvalidURL            = errors.New("qdrant: invalid URL provided")
	ErrCollectionExists      = errors.New("qdrant: collection already exists")
	ErrEmptyQuery            = errors.New("qdrant: query cannot be empty")
	ErrDimensionMismatch     = errors.New("qdrant: vector dimension mismatch")
	ErrBatchSizeTooLarge     = errors.New("qdrant: batch size exceeds maximum allowed")
	ErrPartialBatchFailure   = errors.New("qdrant: some batches failed to process")
	ErrEmbeddingTotalFailure = errors.New("qdrant: all embedding batches failed")
	ErrMissingSparseName     = errors.New("qdrant: sparse vector name required for hybrid search configuration")
)
View Source
var ErrInvalidOptions = errors.New("qdrant: invalid options provided")

Functions

func New

func New(opts ...Option) (vectorstores.VectorStore, error)

Types

type BatchConfig added in v0.2.0

type BatchConfig struct {
	BatchSize               int           `json:"batch_size"`
	MaxConcurrency          int           `json:"max_concurrency"`
	RetryAttempts           int           `json:"retry_attempts"`
	RetryDelay              time.Duration `json:"retry_delay"`
	MaxRetryDelay           time.Duration `json:"max_retry_delay"`
	EmbeddingBatchSize      int           `json:"embedding_batch_size,omitempty"`
	RetryJitter             time.Duration `json:"retry_jitter"`
	EmbeddingMaxConcurrency int           `json:"embedding_max_concurrency,omitempty"`
}

type BatchResult added in v0.2.0

type BatchResult struct {
	TotalProcessed int           `json:"total_processed"`
	TotalFailed    int           `json:"total_failed"`
	Duration       time.Duration `json:"duration"`
	Errors         []error       `json:"errors,omitempty"`
	ProcessedIDs   []string      `json:"processed_ids,omitempty"`
}

type Option

type Option func(*options)

Option defines a function type for configuring Qdrant store options.

func WithAPIKey

func WithAPIKey(apiKey string) Option

WithAPIKey sets the API key for Qdrant authentication.

func WithBatchSize

func WithBatchSize(size int) Option

WithBatchSize sets the batch size for bulk operations.

func WithBinaryQuantization added in v0.15.0

func WithBinaryQuantization(enabled bool) Option

WithBinaryQuantization enables binary quantization for the collection.

func WithCollectionName

func WithCollectionName(name string) Option

WithCollectionName sets the collection name for the Qdrant store.

func WithContentKey

func WithContentKey(contentKey string) Option

WithContentKey sets the key used to store document content in Qdrant payload.

func WithEmbedder

func WithEmbedder(embedder embeddings.Embedder) Option

WithEmbedder sets the embedder for generating vector embeddings.

func WithGrpcOptions added in v0.15.0

func WithGrpcOptions(opts ...grpc.DialOption) Option

WithGrpcOptions sets custom gRPC dial options for advanced configuration. These are appended to the default dial options.

func WithHost

func WithHost(host string) Option

WithHost sets the Qdrant server host and constructs the URL.

func WithHostAndPort

func WithHostAndPort(host string, port int) Option

WithHostAndPort sets the Qdrant server host and port.

func WithKeepaliveTime added in v0.15.0

func WithKeepaliveTime(d time.Duration) Option

WithKeepaliveTime sets the interval between keepalive pings. This helps maintain connection health in long-running scenarios.

func WithKeepaliveTimeout added in v0.15.0

func WithKeepaliveTimeout(d time.Duration) Option

WithKeepaliveTimeout sets the timeout for keepalive ping responses.

func WithLogger

func WithLogger(logger *slog.Logger) Option

WithLogger sets the logger for the Qdrant store.

func WithMaxRetryDelay added in v0.15.0

func WithMaxRetryDelay(delay time.Duration) Option

WithMaxRetryDelay sets the maximum delay between retry attempts.

func WithPayloadIndex added in v0.15.0

func WithPayloadIndex(keys ...string) Option

WithPayloadIndex specifies keys to be indexed in the payload.

func WithPoolSize added in v0.15.0

func WithPoolSize(size int) Option

WithPoolSize sets the gRPC connection pool size. A larger pool can handle more concurrent requests.

func WithRetryAttempts

func WithRetryAttempts(attempts int) Option

WithRetryAttempts sets the number of retry attempts for failed operations.

func WithRetryDelay added in v0.15.0

func WithRetryDelay(delay time.Duration) Option

WithRetryDelay sets the initial delay between retry attempts.

func WithRetryJitter added in v0.15.0

func WithRetryJitter(jitter time.Duration) Option

WithRetryJitter sets the random jitter added to retry delays.

func WithSparseVector added in v0.15.0

func WithSparseVector(name string) Option

WithSparseVector adds a named sparse vector configuration.

func WithTLS

func WithTLS(useTLS bool) Option

WithTLS enables or disables TLS for the Qdrant connection.

func WithTimeout

func WithTimeout(timeout time.Duration) Option

WithTimeout sets the connection timeout.

func WithURL

func WithURL(qdrantURL url.URL) Option

WithURL sets the Qdrant server URL.

type Store

type Store struct {
	// contains filtered or unexported fields
}

func (*Store) AddDocuments

func (s *Store) AddDocuments(ctx context.Context, docs []schema.Document, options ...vectorstores.Option) ([]string, error)

func (*Store) AddDocumentsBatch added in v0.2.0

func (s *Store) AddDocumentsBatch(
	ctx context.Context,
	docs []schema.Document,
	progressCallback func(processed, total int, duration time.Duration),
	options ...vectorstores.Option,
) ([]string, error)

func (*Store) Close added in v0.15.0

func (s *Store) Close() error

Close closes the gRPC connection to the Qdrant server. It should be called when the Store is no longer needed to release resources.

func (*Store) CreateCollection

func (s *Store) CreateCollection(ctx context.Context, name string, dimension int, options ...vectorstores.Option) error

func (*Store) DeleteCollection

func (s *Store) DeleteCollection(ctx context.Context, name string) error

func (*Store) DeleteDocuments

func (s *Store) DeleteDocuments(ctx context.Context, ids []string, options ...vectorstores.Option) error

func (*Store) DeleteDocumentsByFilter added in v0.6.0

func (s *Store) DeleteDocumentsByFilter(ctx context.Context, filters map[string]any, options ...vectorstores.Option) error

func (*Store) GetBatchConfig added in v0.2.0

func (s *Store) GetBatchConfig() BatchConfig

func (*Store) GetEmbedder added in v0.15.0

func (s *Store) GetEmbedder() embeddings.Embedder

GetEmbedder returns the embedder used by the store.

func (*Store) Health

func (s *Store) Health(ctx context.Context) error

func (*Store) ListCollections

func (s *Store) ListCollections(ctx context.Context) ([]string, error)

func (*Store) SetBatchConfig added in v0.2.0

func (s *Store) SetBatchConfig(config BatchConfig)

func (*Store) SimilaritySearch

func (s *Store) SimilaritySearch(
	ctx context.Context,
	query string,
	numDocuments int,
	options ...vectorstores.Option,
) ([]schema.Document, error)

func (*Store) SimilaritySearchBatch added in v0.7.0

func (s *Store) SimilaritySearchBatch(
	ctx context.Context,
	queries []string,
	numDocuments int,
	options ...vectorstores.Option,
) ([][]schema.Document, error)

func (*Store) SimilaritySearchWithScores

func (s *Store) SimilaritySearchWithScores(
	ctx context.Context,
	query string,
	numDocuments int,
	options ...vectorstores.Option,
) ([]vectorstores.DocumentWithScore, error)

Jump to

Keyboard shortcuts

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