mirror of https://github.com/milvus-io/milvus.git
64 lines
1.3 KiB
Go
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,
|
||
|
}
|
||
|
}
|
||
|
|