milvus/client/index/sparse.go
ThreadDao 67747245f4
test: add test cases for gosdk v2 index (#34431)
issue: #33419 
- Add test cases for gosdk v2 index
- Add sparse index for go client

Signed-off-by: ThreadDao <yufen.zong@zilliz.com>
2024-07-05 09:10:09 +08:00

64 lines
1.3 KiB
Go

package index
import (
"fmt"
)
const (
dropRatio = `drop_ratio_build`
)
var _ Index = sparseInvertedIndex{}
// IndexSparseInverted index type for SPARSE_INVERTED_INDEX
type sparseInvertedIndex struct {
baseIndex
dropRatio float64
}
func (idx sparseInvertedIndex) Params() map[string]string {
return map[string]string{
MetricTypeKey: string(idx.metricType),
IndexTypeKey: string(SparseInverted),
dropRatio: fmt.Sprintf("%v", idx.dropRatio),
}
}
func NewSparseInvertedIndex(metricType MetricType, dropRatio float64) Index {
return sparseInvertedIndex {
baseIndex: baseIndex{
metricType: metricType,
indexType: SparseInverted,
},
dropRatio: dropRatio,
}
}
var _ Index = sparseWANDIndex{}
type sparseWANDIndex struct {
baseIndex
dropRatio float64
}
func (idx sparseWANDIndex) Params() map[string]string {
return map[string]string{
MetricTypeKey: string(idx.metricType),
IndexTypeKey: string(SparseWAND),
dropRatio: fmt.Sprintf("%v", idx.dropRatio),
}
}
// IndexSparseWAND index type for SPARSE_WAND, weak-and
func NewSparseWANDIndex(metricType MetricType, dropRatio float64) Index {
return sparseWANDIndex {
baseIndex: baseIndex{
metricType: metricType,
indexType: SparseWAND,
},
dropRatio: dropRatio,
}
}