mirror of
https://gitee.com/milvus-io/milvus.git
synced 2026-01-04 01:42:15 +08:00
add sparse float vector support to different milvus components, including proxy, data node to receive and write sparse float vectors to binlog, query node to handle search requests, index node to build index for sparse float column, etc. https://github.com/milvus-io/milvus/issues/29419 --------- Signed-off-by: Buqian Zheng <zhengbuqian@gmail.com>
69 lines
2.3 KiB
Go
69 lines
2.3 KiB
Go
package indexparamcheck
|
|
|
|
import (
|
|
"github.com/milvus-io/milvus/pkg/common"
|
|
"github.com/milvus-io/milvus/pkg/util/metric"
|
|
)
|
|
|
|
const (
|
|
MinNBits = 1
|
|
MaxNBits = 16
|
|
DefaultNBits = 8
|
|
|
|
// MinNList is the lower limit of nlist that used in Index IVFxxx
|
|
MinNList = 1
|
|
// MaxNList is the upper limit of nlist that used in Index IVFxxx
|
|
MaxNList = 65536
|
|
|
|
HNSWMinEfConstruction = 1
|
|
HNSWMaxEfConstruction = 2147483647
|
|
HNSWMinM = 1
|
|
HNSWMaxM = 2048
|
|
|
|
// DIM is a constant used to represent dimension
|
|
DIM = common.DimKey
|
|
// Metric is a constant used to metric type
|
|
Metric = common.MetricTypeKey
|
|
// NLIST is a constant used to nlist in Index IVFxxx
|
|
NLIST = "nlist"
|
|
NBITS = "nbits"
|
|
IVFM = "m"
|
|
|
|
EFConstruction = "efConstruction"
|
|
HNSWM = "M"
|
|
|
|
RaftCacheDatasetOnDevice = "cache_dataset_on_device"
|
|
|
|
// Cagra Train Param
|
|
CagraInterDegree = "intermediate_graph_degree"
|
|
CagraGraphDegree = "graph_degree"
|
|
CagraBuildAlgo = "build_algo"
|
|
|
|
CargaBuildAlgoIVFPQ = "IVF_PQ"
|
|
CargaBuildAlgoNNDESCENT = "NN_DESCENT"
|
|
|
|
// Sparse Index Param
|
|
SparseDropRatioBuild = "drop_ratio_build"
|
|
)
|
|
|
|
// METRICS is a set of all metrics types supported for float vector.
|
|
var METRICS = []string{metric.L2, metric.IP, metric.COSINE} // const
|
|
|
|
// BinIDMapMetrics is a set of all metric types supported for binary vector.
|
|
var (
|
|
BinIDMapMetrics = []string{metric.HAMMING, metric.JACCARD, metric.SUBSTRUCTURE, metric.SUPERSTRUCTURE} // const
|
|
BinIvfMetrics = []string{metric.HAMMING, metric.JACCARD} // const
|
|
HnswMetrics = []string{metric.L2, metric.IP, metric.COSINE, metric.HAMMING, metric.JACCARD} // const
|
|
RaftMetrics = []string{metric.L2, metric.IP}
|
|
CagraBuildAlgoTypes = []string{CargaBuildAlgoIVFPQ, CargaBuildAlgoNNDESCENT}
|
|
supportDimPerSubQuantizer = []int{32, 28, 24, 20, 16, 12, 10, 8, 6, 4, 3, 2, 1} // const
|
|
supportSubQuantizer = []int{96, 64, 56, 48, 40, 32, 28, 24, 20, 16, 12, 8, 4, 3, 2, 1} // const
|
|
SparseMetrics = []string{metric.IP} // const
|
|
)
|
|
|
|
const (
|
|
FloatVectorDefaultMetricType = metric.IP
|
|
SparseFloatVectorDefaultMetricType = metric.IP
|
|
BinaryVectorDefaultMetricType = metric.JACCARD
|
|
)
|