Documentation
¶
Index ¶
- Constants
- func New(cfg Config, uc UserConfig, kvStore *collection.KeyValue) (*hnsw, error)
- func NewCommitLogger(rootPath, name string, logger logrus.FieldLogger, opts ...CommitlogOption) (*hnswCommitLogger, error)
- func NewFromJSONDump(dumpBytes []byte, vecForID VectorForID) (*hnsw, error)
- func NewFromJSONDumpMap(dumpBytes []byte, vecForID VectorForID) (*hnsw, error)
- func NewNoopCache(vecForID VectorForID, maxSize int, logger logrus.FieldLogger) *noopCache
- func NewWriter(w *os.File) *bufWriter
- func NewWriterSize(w *os.File, size int) *bufWriter
- func ParseAndValidateConfig(input interface{}) (schema.VectorIndexConfig, error)
- func ValidEncoder(encoder string) (ssdhelpers.Encoder, error)
- func ValidEncoderDistribution(distribution string) (ssdhelpers.EncoderDistribution, error)
- func ValidateUserConfigUpdate(initial, updated schema.VectorIndexConfig) error
- type BufferedLinksLogger
- type CommitLogCombiner
- type CommitLogger
- type CommitlogOption
- type Config
- type CorruptCommitLogFixer
- type DeserializationResult
- type Deserializer
- func (c *Deserializer) Do(fd *bufio.Reader, initialState *DeserializationResult, ...) (*DeserializationResult, int, error)
- func (c *Deserializer) ReadAddLinks(r io.Reader, res *DeserializationResult) (int, error)
- func (c *Deserializer) ReadAddTombstone(r io.Reader, tombstones map[uint64]struct{}) error
- func (c *Deserializer) ReadClearLinks(r io.Reader, res *DeserializationResult, keepReplaceInfo bool) error
- func (c *Deserializer) ReadClearLinksAtLevel(r io.Reader, res *DeserializationResult, keepReplaceInfo bool) error
- func (c *Deserializer) ReadCommitType(r io.Reader) (HnswCommitType, error)
- func (c *Deserializer) ReadDeleteNode(r io.Reader, res *DeserializationResult) error
- func (c *Deserializer) ReadEP(r io.Reader) (uint64, uint16, error)
- func (c *Deserializer) ReadKMeansEncoder(r io.Reader, res *DeserializationResult, i uint16) (ssdhelpers.PQEncoder, error)
- func (c *Deserializer) ReadLink(r io.Reader, res *DeserializationResult) error
- func (c *Deserializer) ReadLinks(r io.Reader, res *DeserializationResult, keepReplaceInfo bool) (int, error)
- func (c *Deserializer) ReadNode(r io.Reader, res *DeserializationResult) error
- func (c *Deserializer) ReadPQ(r io.Reader, res *DeserializationResult) error
- func (c *Deserializer) ReadRemoveTombstone(r io.Reader, tombstones map[uint64]struct{}) error
- func (c *Deserializer) ReadTileEncoder(r io.Reader, res *DeserializationResult, i uint16) (ssdhelpers.PQEncoder, error)
- type HnswCommitType
- type JSONDump
- type JSONDumpMap
- type JSONDumpNode
- type JSONDumpNodeMap
- type MakeCommitLogger
- type MemoryCondensor
- func (c *MemoryCondensor) AddLinkAtLevel(nodeid uint64, level uint16, target uint64) error
- func (c *MemoryCondensor) AddLinksAtLevel(nodeid uint64, level uint16, targets []uint64) error
- func (c *MemoryCondensor) AddNode(node *vertex) error
- func (c *MemoryCondensor) AddTombstone(nodeid uint64) error
- func (c *MemoryCondensor) Do(fileName string) error
- func (c *MemoryCondensor) SetEntryPointWithMaxLayer(id uint64, level int) error
- func (c *MemoryCondensor) SetLinksAtLevel(nodeid uint64, level int, targets []uint64) error
- type Metrics
- func (m *Metrics) AddTombstone()
- func (m *Metrics) CleanedUp()
- func (m *Metrics) DeleteVector()
- func (m *Metrics) EndCleanup(threads int)
- func (m *Metrics) GrowDuration(start time.Time)
- func (m *Metrics) InsertVector()
- func (m *Metrics) RemoveTombstone()
- func (m *Metrics) SetSize(size int)
- func (m *Metrics) StartCleanup(threads int)
- func (m *Metrics) StartupProgress(ratio float64)
- func (m *Metrics) TrackDelete(start time.Time, step string)
- func (m *Metrics) TrackInsertObserver(step string) Observer
- func (m *Metrics) TrackStartupIndividual(start time.Time)
- func (m *Metrics) TrackStartupReadCommitlogDiskIO(read int64, nanoseconds int64)
- func (m *Metrics) TrackStartupTotal(start time.Time)
- type MmapCondensor
- type MmapCondensorAnalyzer
- func (a *MmapCondensorAnalyzer) Do(file *os.File) (mmapIndex, error)
- func (a *MmapCondensorAnalyzer) ReadAddTombstone(r io.Reader) error
- func (a *MmapCondensorAnalyzer) ReadClearLinks(r io.Reader) error
- func (a *MmapCondensorAnalyzer) ReadCommitType(r io.Reader) (HnswCommitType, error)
- func (a *MmapCondensorAnalyzer) ReadDeleteNode(r io.Reader) error
- func (a *MmapCondensorAnalyzer) ReadEP(r io.Reader) error
- func (a *MmapCondensorAnalyzer) ReadLink(r io.Reader) error
- func (a *MmapCondensorAnalyzer) ReadLinks(r io.Reader) error
- func (a *MmapCondensorAnalyzer) ReadNode(r io.Reader) error
- func (a *MmapCondensorAnalyzer) ReadRemoveTombstone(r io.Reader) error
- type MmapCondensorReader
- type MultiVectorForID
- type NoopCommitLogger
- func (n *NoopCommitLogger) AddLinkAtLevel(nodeid uint64, level int, target uint64) error
- func (n *NoopCommitLogger) AddNode(node *vertex) error
- func (n *NoopCommitLogger) AddPQ(data ssdhelpers.PQData) error
- func (n *NoopCommitLogger) AddTombstone(nodeid uint64) error
- func (n *NoopCommitLogger) ClearLinks(nodeid uint64) error
- func (n *NoopCommitLogger) ClearLinksAtLevel(nodeid uint64, level uint16) error
- func (n *NoopCommitLogger) Close() error
- func (n *NoopCommitLogger) DeleteNode(nodeid uint64) error
- func (n *NoopCommitLogger) Drop(ctx context.Context) error
- func (n *NoopCommitLogger) Flush() error
- func (n *NoopCommitLogger) ID() string
- func (n *NoopCommitLogger) MaintenanceInProgress() bool
- func (n *NoopCommitLogger) NewBufferedLinksLogger() BufferedLinksLogger
- func (n *NoopCommitLogger) RemoveTombstone(nodeid uint64) error
- func (n *NoopCommitLogger) ReplaceLinksAtLevel(nodeid uint64, level int, targets []uint64) error
- func (n *NoopCommitLogger) Reset() error
- func (n *NoopCommitLogger) RootPath() string
- func (n *NoopCommitLogger) SetEntryPointWithMaxLayer(id uint64, level int) error
- func (n *NoopCommitLogger) Shutdown(context.Context) error
- func (n *NoopCommitLogger) Start()
- func (n *NoopCommitLogger) StartSwitchLogs() chan struct{}
- func (n *NoopCommitLogger) SwitchCommitLogs(force bool) error
- type Observer
- type PQConfig
- type PQEncoder
- type UserConfig
- type VectorForID
- type VectorIndex
Constants ¶
const ( DefaultPQEnabled = false DefaultPQBitCompression = false DefaultPQSegments = 0 DefaultPQEncoderType = "kmeans" DefaultPQEncoderDistribution = "log-normal" DefaultPQCentroids = 256 )
const ( // DefaultSearchByDistInitialLimit : // the initial limit of 100 here is an // arbitrary decision, and can be tuned // as needed DefaultSearchByDistInitialLimit = 100 // DefaultSearchByDistLimitMultiplier : // the decision to increase the limit in // multiples of 10 here is an arbitrary // decision, and can be tuned as needed DefaultSearchByDistLimitMultiplier = 10 )
const ( DistanceCosine = "cosine" DistanceDot = "dot" DistanceL2Squared = "l2-squared" DistanceManhattan = "manhattan" DistanceHamming = "hamming" )
const ( // Set these defaults if the user leaves them blank DefaultCleanupIntervalSeconds = 5 * 60 DefaultMaxConnections = 64 DefaultEFConstruction = 128 DefaultEF = -1 // indicates "let Weaviate pick" DefaultDynamicEFMin = 100 DefaultDynamicEFMax = 500 DefaultDynamicEFFactor = 8 DefaultVectorCacheMaxObjects = 1e12 DefaultSkip = false DefaultFlatSearchCutoff = 40000 DefaultDistanceMetric = DistanceCosine // Fail validation if those criteria are not met MinmumMaxConnections = 4 MinmumEFConstruction = 4 )
Variables ¶
This section is empty.
Functions ¶
func New ¶
func New(cfg Config, uc UserConfig, kvStore *collection.KeyValue) (*hnsw, error)
New creates a new HNSW index, the commit logger is provided through a thunk (a function which can be deferred). This is because creating a commit logger opens files for writing. However, checking whether a file is present, is a criterium for the index to see if it has to recover from disk or if its a truly new index. So instead the index is initialized, with un-biased disk checks first and only then is the commit logger created
func NewCommitLogger ¶
func NewCommitLogger(rootPath, name string, logger logrus.FieldLogger, opts ...CommitlogOption, ) (*hnswCommitLogger, error)
func NewFromJSONDump ¶
func NewFromJSONDump(dumpBytes []byte, vecForID VectorForID) (*hnsw, error)
func NewFromJSONDumpMap ¶
func NewFromJSONDumpMap(dumpBytes []byte, vecForID VectorForID) (*hnsw, error)
func NewNoopCache ¶
func NewNoopCache(vecForID VectorForID, maxSize int, logger logrus.FieldLogger, ) *noopCache
func NewWriterSize ¶
NewWriterSize returns a new Writer whose buffer has at least the specified size. If the argument *os.File is already a Writer with large enough size, it returns the underlying Writer.
func ParseAndValidateConfig ¶
func ParseAndValidateConfig(input interface{}) (schema.VectorIndexConfig, error)
ParseAndValidateConfig from an unknown input value, as this is not further specified in the API to allow of exchanging the index type
func ValidEncoder ¶
func ValidEncoder(encoder string) (ssdhelpers.Encoder, error)
func ValidEncoderDistribution ¶
func ValidEncoderDistribution(distribution string) (ssdhelpers.EncoderDistribution, error)
func ValidateUserConfigUpdate ¶
func ValidateUserConfigUpdate(initial, updated schema.VectorIndexConfig) error
Types ¶
type BufferedLinksLogger ¶
type CommitLogCombiner ¶
type CommitLogCombiner struct {
// contains filtered or unexported fields
}
func NewCommitLogCombiner ¶
func NewCommitLogCombiner(rootPath, id string, threshold int64, logger logrus.FieldLogger, ) *CommitLogCombiner
func (*CommitLogCombiner) Do ¶
func (c *CommitLogCombiner) Do() (bool, error)
type CommitLogger ¶
type CommitLogger interface {
ID() string
Start()
AddNode(node *vertex) error
SetEntryPointWithMaxLayer(id uint64, level int) error
AddLinkAtLevel(nodeid uint64, level int, target uint64) error
ReplaceLinksAtLevel(nodeid uint64, level int, targets []uint64) error
AddTombstone(nodeid uint64) error
RemoveTombstone(nodeid uint64) error
DeleteNode(nodeid uint64) error
ClearLinks(nodeid uint64) error
ClearLinksAtLevel(nodeid uint64, level uint16) error
Reset() error
Drop(ctx context.Context) error
Flush() error
Shutdown(ctx context.Context) error
RootPath() string
SwitchCommitLogs(bool) error
MaintenanceInProgress() bool
AddPQ(ssdhelpers.PQData) error
}
func MakeNoopCommitLogger ¶
func MakeNoopCommitLogger() (CommitLogger, error)
type CommitlogOption ¶
type CommitlogOption func(l *hnswCommitLogger) error
func WithCommitlogCycleTicker ¶
func WithCommitlogCycleTicker(cycleTicker cyclemanager.TickerProvider) CommitlogOption
func WithCommitlogThreshold ¶
func WithCommitlogThreshold(size int64) CommitlogOption
func WithCommitlogThresholdForCombining ¶
func WithCommitlogThresholdForCombining(size int64) CommitlogOption
type Config ¶
type Config struct {
// internal
RootPath string
ID string
MakeCommitLoggerThunk MakeCommitLogger
VectorForIDThunk VectorForID
Logger logrus.FieldLogger
DistanceProvider distancer.Provider
PrometheusMetrics *monitoring.PrometheusMetrics
// metadata for monitoring
ShardName string
ClassName string
}
Config for a new HSNW index, this contains information that is derived internally, e.g. by the shard. All User-settable config is specified in Config.UserConfig
type CorruptCommitLogFixer ¶
type CorruptCommitLogFixer struct {
// contains filtered or unexported fields
}
CorruptCommitLogFixer helps identify potentially corrupt commit logs and tries to mitigate the problem
func NewCorruptedCommitLogFixer ¶
func NewCorruptedCommitLogFixer(logger logrus.FieldLogger) *CorruptCommitLogFixer
func (*CorruptCommitLogFixer) Do ¶
func (fixer *CorruptCommitLogFixer) Do(fileNames []string) ([]string, error)
Do tries to delete files that could be corrupt and removes them from the returned list, indicating that the index should no longer try to read them
A file is considered corrupt if it has the .condensed suffix - yet there is a file with the same name without that suffix. This would indicate that trying to condense the file has somehow failed or been interrupted, as a successful condensing would have been succeeded by the removal of the original file. We thus assume the file must be corrupted, and delete it, so that the original will be used instead.
type DeserializationResult ¶
type DeserializationResult struct {
Nodes []*vertex
Entrypoint uint64
Level uint16
Tombstones map[uint64]struct{}
EntrypointChanged bool
PQData ssdhelpers.PQData
Compressed bool
// If there is no entry for the links at a Level to be replaced, we must
// assume that all links were appended and prior state must exist
// Similarly if we run into a "Clear" we need to explicitly set the replace
// flag, so that future appends aren't always appended and we run into a
// situation where reading multiple condensed logs in succession leads to too
// many Connections as discovered in
// https://github.com/weaviate/weaviate/issues/1868
LinksReplaced map[uint64]map[uint16]struct{}
}
func (DeserializationResult) ReplaceLinks ¶
func (dr DeserializationResult) ReplaceLinks(node uint64, level uint16) bool
type Deserializer ¶
type Deserializer struct {
// contains filtered or unexported fields
}
func NewDeserializer ¶
func NewDeserializer(logger logrus.FieldLogger) *Deserializer
func (*Deserializer) Do ¶
func (c *Deserializer) Do(fd *bufio.Reader, initialState *DeserializationResult, keepLinkReplaceInformation bool, ) (*DeserializationResult, int, error)
func (*Deserializer) ReadAddLinks ¶
func (c *Deserializer) ReadAddLinks(r io.Reader, res *DeserializationResult, ) (int, error)
func (*Deserializer) ReadAddTombstone ¶
func (c *Deserializer) ReadAddTombstone(r io.Reader, tombstones map[uint64]struct{}) error
func (*Deserializer) ReadClearLinks ¶
func (c *Deserializer) ReadClearLinks(r io.Reader, res *DeserializationResult, keepReplaceInfo bool, ) error
func (*Deserializer) ReadClearLinksAtLevel ¶
func (c *Deserializer) ReadClearLinksAtLevel(r io.Reader, res *DeserializationResult, keepReplaceInfo bool, ) error
func (*Deserializer) ReadCommitType ¶
func (c *Deserializer) ReadCommitType(r io.Reader) (HnswCommitType, error)
func (*Deserializer) ReadDeleteNode ¶
func (c *Deserializer) ReadDeleteNode(r io.Reader, res *DeserializationResult) error
func (*Deserializer) ReadKMeansEncoder ¶
func (c *Deserializer) ReadKMeansEncoder(r io.Reader, res *DeserializationResult, i uint16) (ssdhelpers.PQEncoder, error)
func (*Deserializer) ReadLink ¶
func (c *Deserializer) ReadLink(r io.Reader, res *DeserializationResult) error
func (*Deserializer) ReadLinks ¶
func (c *Deserializer) ReadLinks(r io.Reader, res *DeserializationResult, keepReplaceInfo bool, ) (int, error)
func (*Deserializer) ReadNode ¶
func (c *Deserializer) ReadNode(r io.Reader, res *DeserializationResult) error
func (*Deserializer) ReadPQ ¶
func (c *Deserializer) ReadPQ(r io.Reader, res *DeserializationResult) error
func (*Deserializer) ReadRemoveTombstone ¶
func (c *Deserializer) ReadRemoveTombstone(r io.Reader, tombstones map[uint64]struct{}) error
func (*Deserializer) ReadTileEncoder ¶
func (c *Deserializer) ReadTileEncoder(r io.Reader, res *DeserializationResult, i uint16) (ssdhelpers.PQEncoder, error)
type HnswCommitType ¶
type HnswCommitType uint8 // 256 options, plenty of room for future extensions
const ( AddNode HnswCommitType = iota SetEntryPointMaxLevel AddLinkAtLevel ReplaceLinksAtLevel AddTombstone RemoveTombstone ClearLinks DeleteNode ResetIndex ClearLinksAtLevel // added in v1.8.0-rc.1, see https://github.com/weaviate/weaviate/issues/1701 AddLinksAtLevel // added in v1.8.0-rc.1, see https://github.com/weaviate/weaviate/issues/1705 AddPQ )
func (HnswCommitType) String ¶
func (t HnswCommitType) String() string
type JSONDumpMap ¶
type JSONDumpNode ¶
type JSONDumpNodeMap ¶
type MakeCommitLogger ¶
type MakeCommitLogger func() (CommitLogger, error)
type MemoryCondensor ¶
type MemoryCondensor struct {
// contains filtered or unexported fields
}
func NewMemoryCondensor ¶
func NewMemoryCondensor(logger logrus.FieldLogger) *MemoryCondensor
func (*MemoryCondensor) AddLinkAtLevel ¶
func (c *MemoryCondensor) AddLinkAtLevel(nodeid uint64, level uint16, target uint64) error
func (*MemoryCondensor) AddLinksAtLevel ¶
func (c *MemoryCondensor) AddLinksAtLevel(nodeid uint64, level uint16, targets []uint64) error
func (*MemoryCondensor) AddNode ¶
func (c *MemoryCondensor) AddNode(node *vertex) error
AddNode adds an empty node
func (*MemoryCondensor) AddTombstone ¶
func (c *MemoryCondensor) AddTombstone(nodeid uint64) error
func (*MemoryCondensor) Do ¶
func (c *MemoryCondensor) Do(fileName string) error
func (*MemoryCondensor) SetEntryPointWithMaxLayer ¶
func (c *MemoryCondensor) SetEntryPointWithMaxLayer(id uint64, level int) error
func (*MemoryCondensor) SetLinksAtLevel ¶
func (c *MemoryCondensor) SetLinksAtLevel(nodeid uint64, level int, targets []uint64) error
type Metrics ¶
type Metrics struct {
// contains filtered or unexported fields
}
func NewMetrics ¶
func NewMetrics(prom *monitoring.PrometheusMetrics, className, shardName string, ) *Metrics
func (*Metrics) AddTombstone ¶
func (m *Metrics) AddTombstone()
func (*Metrics) DeleteVector ¶
func (m *Metrics) DeleteVector()
func (*Metrics) EndCleanup ¶
func (*Metrics) GrowDuration ¶
func (*Metrics) InsertVector ¶
func (m *Metrics) InsertVector()
func (*Metrics) RemoveTombstone ¶
func (m *Metrics) RemoveTombstone()
func (*Metrics) StartCleanup ¶
func (*Metrics) StartupProgress ¶
func (*Metrics) TrackInsertObserver ¶
func (*Metrics) TrackStartupIndividual ¶
func (*Metrics) TrackStartupReadCommitlogDiskIO ¶
func (*Metrics) TrackStartupTotal ¶
type MmapCondensor ¶
type MmapCondensor struct {
// contains filtered or unexported fields
}
func NewMmapCondensor ¶
func NewMmapCondensor(connectionsPerLevel int) *MmapCondensor
func (*MmapCondensor) Do ¶
func (c *MmapCondensor) Do(fileName string) error
type MmapCondensorAnalyzer ¶
type MmapCondensorAnalyzer struct {
// contains filtered or unexported fields
}
func (*MmapCondensorAnalyzer) Do ¶
func (a *MmapCondensorAnalyzer) Do(file *os.File) (mmapIndex, error)
func (*MmapCondensorAnalyzer) ReadAddTombstone ¶
func (a *MmapCondensorAnalyzer) ReadAddTombstone(r io.Reader) error
func (*MmapCondensorAnalyzer) ReadClearLinks ¶
func (a *MmapCondensorAnalyzer) ReadClearLinks(r io.Reader) error
func (*MmapCondensorAnalyzer) ReadCommitType ¶
func (a *MmapCondensorAnalyzer) ReadCommitType(r io.Reader) (HnswCommitType, error)
func (*MmapCondensorAnalyzer) ReadDeleteNode ¶
func (a *MmapCondensorAnalyzer) ReadDeleteNode(r io.Reader) error
func (*MmapCondensorAnalyzer) ReadLink ¶
func (a *MmapCondensorAnalyzer) ReadLink(r io.Reader) error
func (*MmapCondensorAnalyzer) ReadLinks ¶
func (a *MmapCondensorAnalyzer) ReadLinks(r io.Reader) error
func (*MmapCondensorAnalyzer) ReadNode ¶
func (a *MmapCondensorAnalyzer) ReadNode(r io.Reader) error
func (*MmapCondensorAnalyzer) ReadRemoveTombstone ¶
func (a *MmapCondensorAnalyzer) ReadRemoveTombstone(r io.Reader) error
type MmapCondensorReader ¶
type MmapCondensorReader struct {
// contains filtered or unexported fields
}
type MultiVectorForID ¶
type NoopCommitLogger ¶
type NoopCommitLogger struct{}
NoopCommitLogger implements the CommitLogger interface, but does not actually write anything to disk
func (*NoopCommitLogger) AddLinkAtLevel ¶
func (n *NoopCommitLogger) AddLinkAtLevel(nodeid uint64, level int, target uint64) error
func (*NoopCommitLogger) AddNode ¶
func (n *NoopCommitLogger) AddNode(node *vertex) error
func (*NoopCommitLogger) AddPQ ¶
func (n *NoopCommitLogger) AddPQ(data ssdhelpers.PQData) error
func (*NoopCommitLogger) AddTombstone ¶
func (n *NoopCommitLogger) AddTombstone(nodeid uint64) error
func (*NoopCommitLogger) ClearLinks ¶
func (n *NoopCommitLogger) ClearLinks(nodeid uint64) error
func (*NoopCommitLogger) ClearLinksAtLevel ¶
func (n *NoopCommitLogger) ClearLinksAtLevel(nodeid uint64, level uint16) error
func (*NoopCommitLogger) Close ¶
func (n *NoopCommitLogger) Close() error
func (*NoopCommitLogger) DeleteNode ¶
func (n *NoopCommitLogger) DeleteNode(nodeid uint64) error
func (*NoopCommitLogger) Flush ¶
func (n *NoopCommitLogger) Flush() error
func (*NoopCommitLogger) ID ¶
func (n *NoopCommitLogger) ID() string
func (*NoopCommitLogger) MaintenanceInProgress ¶
func (n *NoopCommitLogger) MaintenanceInProgress() bool
func (*NoopCommitLogger) NewBufferedLinksLogger ¶
func (n *NoopCommitLogger) NewBufferedLinksLogger() BufferedLinksLogger
func (*NoopCommitLogger) RemoveTombstone ¶
func (n *NoopCommitLogger) RemoveTombstone(nodeid uint64) error
func (*NoopCommitLogger) ReplaceLinksAtLevel ¶
func (n *NoopCommitLogger) ReplaceLinksAtLevel(nodeid uint64, level int, targets []uint64) error
func (*NoopCommitLogger) Reset ¶
func (n *NoopCommitLogger) Reset() error
func (*NoopCommitLogger) RootPath ¶
func (n *NoopCommitLogger) RootPath() string
func (*NoopCommitLogger) SetEntryPointWithMaxLayer ¶
func (n *NoopCommitLogger) SetEntryPointWithMaxLayer(id uint64, level int) error
func (*NoopCommitLogger) Start ¶
func (n *NoopCommitLogger) Start()
func (*NoopCommitLogger) StartSwitchLogs ¶
func (n *NoopCommitLogger) StartSwitchLogs() chan struct{}
func (*NoopCommitLogger) SwitchCommitLogs ¶
func (n *NoopCommitLogger) SwitchCommitLogs(force bool) error
type PQConfig ¶
type PQConfig struct {
Enabled bool `json:"enabled"`
BitCompression bool `json:"bitCompression"`
Segments int `json:"segments"`
Centroids int `json:"centroids"`
Encoder PQEncoder `json:"encoder"`
}
Product Quantization configuration
type PQEncoder ¶
type PQEncoder struct {
Type string `json:"type"`
Distribution string `json:"distribution,omitempty"`
}
Product Quantization encoder configuration
type UserConfig ¶
type UserConfig struct {
Skip bool `json:"skip"`
CleanupIntervalSeconds int `json:"cleanupIntervalSeconds"`
MaxConnections int `json:"maxConnections"`
EFConstruction int `json:"efConstruction"`
EF int `json:"ef"`
DynamicEFMin int `json:"dynamicEfMin"`
DynamicEFMax int `json:"dynamicEfMax"`
DynamicEFFactor int `json:"dynamicEfFactor"`
VectorCacheMaxObjects int `json:"vectorCacheMaxObjects"`
FlatSearchCutoff int `json:"flatSearchCutoff"`
Distance string `json:"distance"`
PQ PQConfig `json:"pq"`
}
UserConfig bundles all values settable by a user in the per-class settings
func NewDefaultUserConfig ¶
func NewDefaultUserConfig() UserConfig
func (UserConfig) IndexType ¶
func (u UserConfig) IndexType() string
IndexType returns the type of the underlying vector index, thus making sure the schema.VectorIndexConfig interface is implemented
func (*UserConfig) SetDefaults ¶
func (c *UserConfig) SetDefaults()
SetDefaults in the user-specifyable part of the config
type VectorIndex ¶
type VectorIndex interface {
Flush() error
LoadEntrypoint() error
Add(id uint64, vector []float32) error
KnnSearchByVectorMaxDist(query []float32, dist float32, ef int,
allowList helpers.AllowList) ([]uint64, []float32, error)
SearchByVectorDistance(query []float32, targetDistance float32, maxLimit int64, allowList helpers.AllowList) ([]uint64, []float32, error)
}
Source Files
¶
- backup.go
- bufiowriter.go
- commit_log_combiner.go
- commit_logger.go
- commit_logger_buffered_links_logger.go
- commit_logger_functional_options.go
- commit_logger_noop.go
- compress.go
- compressed_vector_cache.go
- condensor.go
- condensor_mmap.go
- condensor_mmap_analyzer.go
- condensor_mmap_reader.go
- config.go
- config_update.go
- corrupt_commit_logs_fixer.go
- debug.go
- delete.go
- deserializer.go
- flat_search.go
- heuristic.go
- index.go
- insert.go
- insert_metrics.go
- maintainance.go
- metrics.go
- neighbor_connections.go
- pools.go
- pq_config.go
- prefetch_amd64.go
- search.go
- search_with_max_dist.go
- startup.go
- user_config.go
- vector_cache.go
- vector_cache_prefiller.go
- vertex.go