Remove unused index param check ()

Signed-off-by: Yudong Cai <yudong.cai@zilliz.com>
pull/22325/head
Cai Yudong 2023-02-21 17:36:26 +08:00 committed by GitHub
parent 5936723904
commit d4e0b6e91b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 0 additions and 596 deletions

View File

@ -65,23 +65,11 @@ const (
DiskAnnMinDim = 32
DiskAnnMaxDim = 1024
NgtMinEdgeSize = 1
NgtMaxEdgeSize = 200
HNSWMinEfConstruction = 8
HNSWMaxEfConstruction = 512
HNSWMinM = 4
HNSWMaxM = 64
MinKNNG = 5
MaxKNNG = 300
MinSearchLength = 10
MaxSearchLength = 300
MinOutDegree = 5
MaxOutDegree = 300
MinCandidatePoolSize = 50
MaxCandidatePoolSize = 1000
MinNTrees = 1
// too large of n_trees takes much time, if there is real requirement, change this threshold.
MaxNTrees = 1024
@ -95,24 +83,12 @@ const (
NBITS = "nbits"
IVFM = "m"
KNNG = "knng"
SearchLength = "search_length"
OutDegree = "out_degree"
CANDIDATE = "candidate_pool_size"
EFConstruction = "efConstruction"
HNSWM = "M"
PQM = "PQM"
NTREES = "n_trees"
EdgeSize = "edge_size"
ForcedlyPrunedEdgeSize = "forcedly_pruned_edge_size"
SelectivelyPrunedEdgeSize = "selectively_pruned_edge_size"
OutgoingEdgeSize = "outgoing_edge_size"
IncomingEdgeSize = "incoming_edge_size"
IndexMode = "index_mode"
CPUMode = "CPU"
GPUMode = "GPU"
@ -324,41 +300,6 @@ func newBinIVFConfAdapter() *BinIVFConfAdapter {
return &BinIVFConfAdapter{}
}
type NSGConfAdapter struct {
BaseConfAdapter
}
// CheckTrain checks if a nsg index can be built with specific parameters.
func (adapter *NSGConfAdapter) CheckTrain(params map[string]string) bool {
if !CheckStrByValues(params, Metric, METRICS) {
return false
}
if !CheckIntByRange(params, KNNG, MinKNNG, MaxKNNG) {
return false
}
if !CheckIntByRange(params, SearchLength, MinSearchLength, MaxSearchLength) {
return false
}
if !CheckIntByRange(params, OutDegree, MinOutDegree, MaxOutDegree) {
return false
}
if !CheckIntByRange(params, CANDIDATE, MinCandidatePoolSize, MaxCandidatePoolSize) {
return false
}
// skip checking the number of rows
return true
}
func newNSGConfAdapter() *NSGConfAdapter {
return &NSGConfAdapter{}
}
// HNSWConfAdapter checks if a hnsw index can be built.
type HNSWConfAdapter struct {
BaseConfAdapter
@ -399,143 +340,6 @@ func newANNOYConfAdapter() *ANNOYConfAdapter {
return &ANNOYConfAdapter{}
}
// RHNSWFlatConfAdapter checks if a rhnsw flat index can be built.
type RHNSWFlatConfAdapter struct {
BaseConfAdapter
}
// CheckTrain checks if a rhnsw flat index can be built with specific parameters.
func (adapter *RHNSWFlatConfAdapter) CheckTrain(params map[string]string) bool {
if !CheckIntByRange(params, EFConstruction, HNSWMinEfConstruction, HNSWMaxEfConstruction) {
return false
}
if !CheckIntByRange(params, HNSWM, HNSWMinM, HNSWMaxM) {
return false
}
return adapter.BaseConfAdapter.CheckTrain(params)
}
func newRHNSWFlatConfAdapter() *RHNSWFlatConfAdapter {
return &RHNSWFlatConfAdapter{}
}
// RHNSWPQConfAdapter checks if a rhnsw pq index can be built.
type RHNSWPQConfAdapter struct {
BaseConfAdapter
IVFPQConfAdapter
}
// CheckTrain checks if a rhnsw pq index can be built with specific parameters.
func (adapter *RHNSWPQConfAdapter) CheckTrain(params map[string]string) bool {
if !adapter.BaseConfAdapter.CheckTrain(params) {
return false
}
if !CheckIntByRange(params, EFConstruction, HNSWMinEfConstruction, HNSWMaxEfConstruction) {
return false
}
if !CheckIntByRange(params, HNSWM, HNSWMinM, HNSWMaxM) {
return false
}
dimension, _ := strconv.Atoi(params[DIM])
pqmStr, ok := params[PQM]
if !ok {
return false
}
pqm, err := strconv.Atoi(pqmStr)
if err != nil || pqm == 0 {
return false
}
return adapter.IVFPQConfAdapter.checkCPUPQParams(dimension, pqm)
}
func newRHNSWPQConfAdapter() *RHNSWPQConfAdapter {
return &RHNSWPQConfAdapter{}
}
// RHNSWSQConfAdapter checks if a rhnsw sq index can be built.
type RHNSWSQConfAdapter struct {
BaseConfAdapter
}
// CheckTrain checks if a rhnsw sq index can be built with specific parameters.
func (adapter *RHNSWSQConfAdapter) CheckTrain(params map[string]string) bool {
if !CheckIntByRange(params, EFConstruction, HNSWMinEfConstruction, HNSWMaxEfConstruction) {
return false
}
if !CheckIntByRange(params, HNSWM, HNSWMinM, HNSWMaxM) {
return false
}
return adapter.BaseConfAdapter.CheckTrain(params)
}
func newRHNSWSQConfAdapter() *RHNSWSQConfAdapter {
return &RHNSWSQConfAdapter{}
}
// NGTPANNGConfAdapter checks if a NGT_PANNG index can be built.
type NGTPANNGConfAdapter struct {
BaseConfAdapter
}
func (adapter *NGTPANNGConfAdapter) CheckTrain(params map[string]string) bool {
if !CheckIntByRange(params, EdgeSize, NgtMinEdgeSize, NgtMaxEdgeSize) {
return false
}
if !CheckIntByRange(params, ForcedlyPrunedEdgeSize, NgtMinEdgeSize, NgtMaxEdgeSize) {
return false
}
if !CheckIntByRange(params, SelectivelyPrunedEdgeSize, NgtMinEdgeSize, NgtMaxEdgeSize) {
return false
}
selectivelyPrunedEdgeSize, _ := strconv.Atoi(params[SelectivelyPrunedEdgeSize])
forcedlyPrunedEdgeSize, _ := strconv.Atoi(params[ForcedlyPrunedEdgeSize])
if selectivelyPrunedEdgeSize >= forcedlyPrunedEdgeSize {
return false
}
return adapter.BaseConfAdapter.CheckTrain(params)
}
func newNGTPANNGConfAdapter() *NGTPANNGConfAdapter {
return &NGTPANNGConfAdapter{}
}
// NGTONNGConfAdapter checks if a NGT_ONNG index can be built.
type NGTONNGConfAdapter struct {
BaseConfAdapter
}
func (adapter *NGTONNGConfAdapter) CheckTrain(params map[string]string) bool {
if !CheckIntByRange(params, EdgeSize, NgtMinEdgeSize, NgtMaxEdgeSize) {
return false
}
if !CheckIntByRange(params, OutgoingEdgeSize, NgtMinEdgeSize, NgtMaxEdgeSize) {
return false
}
if !CheckIntByRange(params, IncomingEdgeSize, NgtMinEdgeSize, NgtMaxEdgeSize) {
return false
}
return adapter.BaseConfAdapter.CheckTrain(params)
}
func newNGTONNGConfAdapter() *NGTONNGConfAdapter {
return &NGTONNGConfAdapter{}
}
type DISKANNConfAdapter struct {
BaseConfAdapter
}

View File

@ -49,17 +49,10 @@ func (mgr *ConfAdapterMgrImpl) registerConfAdapter() {
mgr.adapters[IndexFaissIvfFlat] = newIVFConfAdapter()
mgr.adapters[IndexFaissIvfPQ] = newIVFPQConfAdapter()
mgr.adapters[IndexFaissIvfSQ8] = newIVFSQConfAdapter()
mgr.adapters[IndexFaissIvfSQ8H] = newIVFSQConfAdapter()
mgr.adapters[IndexFaissBinIDMap] = newBinIDMAPConfAdapter()
mgr.adapters[IndexFaissBinIvfFlat] = newBinIVFConfAdapter()
mgr.adapters[IndexNSG] = newNSGConfAdapter()
mgr.adapters[IndexHNSW] = newHNSWConfAdapter()
mgr.adapters[IndexANNOY] = newANNOYConfAdapter()
mgr.adapters[IndexRHNSWFlat] = newRHNSWFlatConfAdapter()
mgr.adapters[IndexRHNSWPQ] = newRHNSWPQConfAdapter()
mgr.adapters[IndexRHNSWSQ] = newRHNSWSQConfAdapter()
mgr.adapters[IndexNGTPANNG] = newNGTPANNGConfAdapter()
mgr.adapters[IndexNGTONNG] = newNGTONNGConfAdapter()
mgr.adapters[IndexDISKANN] = newDISKANNConfAdapter()
}

View File

@ -53,12 +53,6 @@ func Test_GetConfAdapterMgrInstance(t *testing.T) {
_, ok = adapter.(*IVFSQConfAdapter)
assert.Equal(t, true, ok)
adapter, err = adapterMgr.GetAdapter(IndexFaissIvfSQ8H)
assert.Equal(t, nil, err)
assert.NotEqual(t, nil, adapter)
_, ok = adapter.(*IVFSQConfAdapter)
assert.Equal(t, true, ok)
adapter, err = adapterMgr.GetAdapter(IndexFaissBinIDMap)
assert.Equal(t, nil, err)
assert.NotEqual(t, nil, adapter)
@ -71,53 +65,17 @@ func Test_GetConfAdapterMgrInstance(t *testing.T) {
_, ok = adapter.(*BinIVFConfAdapter)
assert.Equal(t, true, ok)
adapter, err = adapterMgr.GetAdapter(IndexNSG)
assert.Equal(t, nil, err)
assert.NotEqual(t, nil, adapter)
_, ok = adapter.(*NSGConfAdapter)
assert.Equal(t, true, ok)
adapter, err = adapterMgr.GetAdapter(IndexHNSW)
assert.Equal(t, nil, err)
assert.NotEqual(t, nil, adapter)
_, ok = adapter.(*HNSWConfAdapter)
assert.Equal(t, true, ok)
adapter, err = adapterMgr.GetAdapter(IndexRHNSWFlat)
assert.Equal(t, nil, err)
assert.NotEqual(t, nil, adapter)
_, ok = adapter.(*RHNSWFlatConfAdapter)
assert.Equal(t, true, ok)
adapter, err = adapterMgr.GetAdapter(IndexRHNSWPQ)
assert.Equal(t, nil, err)
assert.NotEqual(t, nil, adapter)
_, ok = adapter.(*RHNSWPQConfAdapter)
assert.Equal(t, true, ok)
adapter, err = adapterMgr.GetAdapter(IndexRHNSWSQ)
assert.Equal(t, nil, err)
assert.NotEqual(t, nil, adapter)
_, ok = adapter.(*RHNSWSQConfAdapter)
assert.Equal(t, true, ok)
adapter, err = adapterMgr.GetAdapter(IndexANNOY)
assert.Equal(t, nil, err)
assert.NotEqual(t, nil, adapter)
_, ok = adapter.(*ANNOYConfAdapter)
assert.Equal(t, true, ok)
adapter, err = adapterMgr.GetAdapter(IndexNGTPANNG)
assert.Equal(t, nil, err)
assert.NotEqual(t, nil, adapter)
_, ok = adapter.(*NGTPANNGConfAdapter)
assert.Equal(t, true, ok)
adapter, err = adapterMgr.GetAdapter(IndexNGTONNG)
assert.Equal(t, nil, err)
assert.NotEqual(t, nil, adapter)
_, ok = adapter.(*NGTONNGConfAdapter)
assert.Equal(t, true, ok)
}
func TestConfAdapterMgrImpl_GetAdapter(t *testing.T) {
@ -155,12 +113,6 @@ func TestConfAdapterMgrImpl_GetAdapter(t *testing.T) {
_, ok = adapter.(*IVFSQConfAdapter)
assert.Equal(t, true, ok)
adapter, err = adapterMgr.GetAdapter(IndexFaissIvfSQ8H)
assert.Equal(t, nil, err)
assert.NotEqual(t, nil, adapter)
_, ok = adapter.(*IVFSQConfAdapter)
assert.Equal(t, true, ok)
adapter, err = adapterMgr.GetAdapter(IndexFaissBinIDMap)
assert.Equal(t, nil, err)
assert.NotEqual(t, nil, adapter)
@ -173,53 +125,17 @@ func TestConfAdapterMgrImpl_GetAdapter(t *testing.T) {
_, ok = adapter.(*BinIVFConfAdapter)
assert.Equal(t, true, ok)
adapter, err = adapterMgr.GetAdapter(IndexNSG)
assert.Equal(t, nil, err)
assert.NotEqual(t, nil, adapter)
_, ok = adapter.(*NSGConfAdapter)
assert.Equal(t, true, ok)
adapter, err = adapterMgr.GetAdapter(IndexHNSW)
assert.Equal(t, nil, err)
assert.NotEqual(t, nil, adapter)
_, ok = adapter.(*HNSWConfAdapter)
assert.Equal(t, true, ok)
adapter, err = adapterMgr.GetAdapter(IndexRHNSWFlat)
assert.Equal(t, nil, err)
assert.NotEqual(t, nil, adapter)
_, ok = adapter.(*RHNSWFlatConfAdapter)
assert.Equal(t, true, ok)
adapter, err = adapterMgr.GetAdapter(IndexRHNSWPQ)
assert.Equal(t, nil, err)
assert.NotEqual(t, nil, adapter)
_, ok = adapter.(*RHNSWPQConfAdapter)
assert.Equal(t, true, ok)
adapter, err = adapterMgr.GetAdapter(IndexRHNSWSQ)
assert.Equal(t, nil, err)
assert.NotEqual(t, nil, adapter)
_, ok = adapter.(*RHNSWSQConfAdapter)
assert.Equal(t, true, ok)
adapter, err = adapterMgr.GetAdapter(IndexANNOY)
assert.Equal(t, nil, err)
assert.NotEqual(t, nil, adapter)
_, ok = adapter.(*ANNOYConfAdapter)
assert.Equal(t, true, ok)
adapter, err = adapterMgr.GetAdapter(IndexNGTPANNG)
assert.Equal(t, nil, err)
assert.NotEqual(t, nil, adapter)
_, ok = adapter.(*NGTPANNGConfAdapter)
assert.Equal(t, true, ok)
adapter, err = adapterMgr.GetAdapter(IndexNGTONNG)
assert.Equal(t, nil, err)
assert.NotEqual(t, nil, adapter)
_, ok = adapter.(*NGTONNGConfAdapter)
assert.Equal(t, true, ok)
}
func TestConfAdapterMgrImpl_GetAdapter_multiple_threads(t *testing.T) {

View File

@ -266,69 +266,6 @@ func TestBinIVFConfAdapter_CheckTrain(t *testing.T) {
}
}
// NSGConfAdapter checks if a nsg index can be built.
func TestNSGConfAdapter_CheckTrain(t *testing.T) {
validParams := map[string]string{
DIM: strconv.Itoa(128),
NLIST: strconv.Itoa(163),
KNNG: strconv.Itoa(20),
SearchLength: strconv.Itoa(40),
OutDegree: strconv.Itoa(30),
CANDIDATE: strconv.Itoa(100),
Metric: L2,
}
invalidMatricParams := copyParams(validParams)
invalidMatricParams[Metric] = JACCARD
invalidKNNGParamsMin := copyParams(validParams)
invalidKNNGParamsMin[KNNG] = strconv.Itoa(MinKNNG - 1)
invalidKNNGParamsMax := copyParams(validParams)
invalidKNNGParamsMax[KNNG] = strconv.Itoa(MaxKNNG + 1)
invalidLengthParamsMin := copyParams(validParams)
invalidLengthParamsMin[SearchLength] = strconv.Itoa(MinSearchLength - 1)
invalidLengthParamsMax := copyParams(validParams)
invalidLengthParamsMax[SearchLength] = strconv.Itoa(MaxSearchLength + 1)
invalidDegreeParamsMin := copyParams(validParams)
invalidDegreeParamsMin[OutDegree] = strconv.Itoa(MinOutDegree - 1)
invalidDegreeParamsMax := copyParams(validParams)
invalidDegreeParamsMax[OutDegree] = strconv.Itoa(MaxOutDegree + 1)
invalidPoolParamsMin := copyParams(validParams)
invalidPoolParamsMin[CANDIDATE] = strconv.Itoa(MinCandidatePoolSize - 1)
invalidPoolParamsMax := copyParams(validParams)
invalidPoolParamsMax[CANDIDATE] = strconv.Itoa(MaxCandidatePoolSize + 1)
cases := []struct {
params map[string]string
want bool
}{
{validParams, true},
{invalidMatricParams, false},
{invalidKNNGParamsMin, false},
{invalidKNNGParamsMax, false},
{invalidLengthParamsMin, false},
{invalidLengthParamsMax, false},
{invalidDegreeParamsMin, false},
{invalidDegreeParamsMax, false},
{invalidPoolParamsMin, false},
{invalidPoolParamsMax, false},
}
adapter := newNSGConfAdapter()
for _, test := range cases {
if got := adapter.CheckTrain(test.params); got != test.want {
t.Errorf("NSGConfAdapter.CheckTrain(%v) = %v", test.params, test.want)
}
}
}
// HNSWConfAdapter checks if a hnsw index can be built.
func TestHNSWConfAdapter_CheckTrain(t *testing.T) {
validParams := map[string]string{
@ -399,242 +336,3 @@ func TestANNOYConfAdapter_CheckTrain(t *testing.T) {
}
}
}
func TestRHNSWFlatConfAdapter_CheckTrain(t *testing.T) {
validParams := map[string]string{
DIM: strconv.Itoa(128),
HNSWM: strconv.Itoa(16),
EFConstruction: strconv.Itoa(200),
Metric: L2,
}
invalidEfParamsMin := copyParams(validParams)
invalidEfParamsMin[EFConstruction] = strconv.Itoa(HNSWMinEfConstruction - 1)
invalidEfParamsMax := copyParams(validParams)
invalidEfParamsMax[EFConstruction] = strconv.Itoa(HNSWMaxEfConstruction + 1)
invalidMParamsMin := copyParams(validParams)
invalidMParamsMin[HNSWM] = strconv.Itoa(HNSWMinM - 1)
invalidMParamsMax := copyParams(validParams)
invalidMParamsMax[HNSWM] = strconv.Itoa(HNSWMaxM + 1)
cases := []struct {
params map[string]string
want bool
}{
{validParams, true},
{invalidEfParamsMin, false},
{invalidEfParamsMax, false},
{invalidMParamsMin, false},
{invalidMParamsMax, false},
}
adapter := newRHNSWFlatConfAdapter()
for _, test := range cases {
if got := adapter.CheckTrain(test.params); got != test.want {
t.Errorf("RHNSWFlatConfAdapter.CheckTrain(%v) = %v", test.params, test.want)
}
}
}
func TestRHNSWPQConfAdapter_CheckTrain(t *testing.T) {
validParams := map[string]string{
DIM: strconv.Itoa(128),
HNSWM: strconv.Itoa(16),
PQM: strconv.Itoa(8),
EFConstruction: strconv.Itoa(200),
Metric: L2,
}
invalidMatricParams := copyParams(validParams)
invalidMatricParams[Metric] = JACCARD
invalidEfParamsMin := copyParams(validParams)
invalidEfParamsMin[EFConstruction] = strconv.Itoa(HNSWMinEfConstruction - 1)
invalidEfParamsMax := copyParams(validParams)
invalidEfParamsMax[EFConstruction] = strconv.Itoa(HNSWMaxEfConstruction + 1)
invalidMParamsMin := copyParams(validParams)
invalidMParamsMin[HNSWM] = strconv.Itoa(HNSWMinM - 1)
invalidMParamsMax := copyParams(validParams)
invalidMParamsMax[HNSWM] = strconv.Itoa(HNSWMaxM + 1)
invalidParamsWithoutPQM := map[string]string{
DIM: strconv.Itoa(128),
HNSWM: strconv.Itoa(16),
EFConstruction: strconv.Itoa(200),
Metric: L2,
}
invalidParamsPQM := copyParams(validParams)
invalidParamsPQM[PQM] = "NAN"
invalidParamsPQMZero := copyParams(validParams)
invalidParamsPQMZero[PQM] = "0"
cases := []struct {
params map[string]string
want bool
}{
{validParams, true},
{invalidMatricParams, false},
{invalidEfParamsMin, false},
{invalidEfParamsMax, false},
{invalidMParamsMin, false},
{invalidMParamsMax, false},
{invalidParamsWithoutPQM, false},
{invalidParamsPQM, false},
{invalidParamsPQMZero, false},
}
adapter := newRHNSWPQConfAdapter()
for _, test := range cases {
if got := adapter.CheckTrain(test.params); got != test.want {
t.Errorf("RHNSWPQConfAdapter.CheckTrain(%v) = %v", test.params, test.want)
}
}
}
func TestRHNSWSQConfAdapter_CheckTrain(t *testing.T) {
validParams := map[string]string{
DIM: strconv.Itoa(128),
HNSWM: strconv.Itoa(16),
EFConstruction: strconv.Itoa(200),
Metric: L2,
}
invalidEfParamsMin := copyParams(validParams)
invalidEfParamsMin[EFConstruction] = strconv.Itoa(HNSWMinEfConstruction - 1)
invalidEfParamsMax := copyParams(validParams)
invalidEfParamsMax[EFConstruction] = strconv.Itoa(HNSWMaxEfConstruction + 1)
invalidMParamsMin := copyParams(validParams)
invalidMParamsMin[HNSWM] = strconv.Itoa(HNSWMinM - 1)
invalidMParamsMax := copyParams(validParams)
invalidMParamsMax[HNSWM] = strconv.Itoa(HNSWMaxM + 1)
cases := []struct {
params map[string]string
want bool
}{
{validParams, true},
{invalidEfParamsMin, false},
{invalidEfParamsMax, false},
{invalidMParamsMin, false},
{invalidMParamsMax, false},
}
adapter := newRHNSWSQConfAdapter()
for _, test := range cases {
if got := adapter.CheckTrain(test.params); got != test.want {
t.Errorf("RHNSWSQConfAdapter.CheckTrain(%v) = %v", test.params, test.want)
}
}
}
func TestNGTPANNGConfAdapter_CheckTrain(t *testing.T) {
validParams := map[string]string{
DIM: strconv.Itoa(128),
EdgeSize: strconv.Itoa(10),
ForcedlyPrunedEdgeSize: strconv.Itoa(60),
SelectivelyPrunedEdgeSize: strconv.Itoa(30),
Metric: L2,
}
invalidEdgeSizeParamsMin := copyParams(validParams)
invalidEdgeSizeParamsMin[EdgeSize] = strconv.Itoa(NgtMinEdgeSize - 1)
invalidEdgeSizeParamsMax := copyParams(validParams)
invalidEdgeSizeParamsMax[EdgeSize] = strconv.Itoa(NgtMaxEdgeSize + 1)
invalidFPEdgeSizeParamsMin := copyParams(validParams)
invalidFPEdgeSizeParamsMin[ForcedlyPrunedEdgeSize] = strconv.Itoa(NgtMinEdgeSize - 1)
invalidFPEdgeSizeParamsMax := copyParams(validParams)
invalidFPEdgeSizeParamsMax[ForcedlyPrunedEdgeSize] = strconv.Itoa(NgtMaxEdgeSize + 1)
invalidSPEdgeSizeParamsMin := copyParams(validParams)
invalidSPEdgeSizeParamsMin[SelectivelyPrunedEdgeSize] = strconv.Itoa(NgtMinEdgeSize - 1)
invalidSPEdgeSizeParamsMax := copyParams(validParams)
invalidSPEdgeSizeParamsMax[SelectivelyPrunedEdgeSize] = strconv.Itoa(NgtMaxEdgeSize + 1)
invalidSPFPParams := copyParams(validParams)
invalidSPFPParams[SelectivelyPrunedEdgeSize] = strconv.Itoa(60)
invalidSPFPParams[ForcedlyPrunedEdgeSize] = strconv.Itoa(30)
cases := []struct {
params map[string]string
want bool
}{
{validParams, true},
{invalidEdgeSizeParamsMin, false},
{invalidEdgeSizeParamsMax, false},
{invalidFPEdgeSizeParamsMin, false},
{invalidFPEdgeSizeParamsMax, false},
{invalidSPEdgeSizeParamsMin, false},
{invalidSPEdgeSizeParamsMax, false},
{invalidSPFPParams, false},
}
adapter := newNGTPANNGConfAdapter()
for _, test := range cases {
if got := adapter.CheckTrain(test.params); got != test.want {
t.Errorf("NGTPANNGConfAdapter.CheckTrain(%v) = %v", test.params, test.want)
}
}
}
func TestNGTONNGConfAdapter_CheckTrain(t *testing.T) {
validParams := map[string]string{
DIM: strconv.Itoa(128),
EdgeSize: strconv.Itoa(20),
OutgoingEdgeSize: strconv.Itoa(5),
IncomingEdgeSize: strconv.Itoa(40),
Metric: L2,
}
invalidEdgeSizeParamsMin := copyParams(validParams)
invalidEdgeSizeParamsMin[EdgeSize] = strconv.Itoa(NgtMinEdgeSize - 1)
invalidEdgeSizeParamsMax := copyParams(validParams)
invalidEdgeSizeParamsMax[EdgeSize] = strconv.Itoa(NgtMaxEdgeSize + 1)
invalidOutEdgeSizeParamsMin := copyParams(validParams)
invalidOutEdgeSizeParamsMin[OutgoingEdgeSize] = strconv.Itoa(NgtMinEdgeSize - 1)
invalidOutEdgeSizeParamsMax := copyParams(validParams)
invalidOutEdgeSizeParamsMax[OutgoingEdgeSize] = strconv.Itoa(NgtMaxEdgeSize + 1)
invalidInEdgeSizeParamsMin := copyParams(validParams)
invalidInEdgeSizeParamsMin[IncomingEdgeSize] = strconv.Itoa(NgtMinEdgeSize - 1)
invalidInEdgeSizeParamsMax := copyParams(validParams)
invalidInEdgeSizeParamsMax[IncomingEdgeSize] = strconv.Itoa(NgtMaxEdgeSize + 1)
cases := []struct {
params map[string]string
want bool
}{
{validParams, true},
{invalidEdgeSizeParamsMin, false},
{invalidEdgeSizeParamsMax, false},
{invalidOutEdgeSizeParamsMin, false},
{invalidOutEdgeSizeParamsMax, false},
{invalidInEdgeSizeParamsMin, false},
{invalidInEdgeSizeParamsMax, false},
}
adapter := newNGTONNGConfAdapter()
for _, test := range cases {
if got := adapter.CheckTrain(test.params); got != test.want {
t.Errorf("NGTONNGConfAdapter.CheckTrain(%v) = %v", test.params, test.want)
}
}
}

View File

@ -20,16 +20,9 @@ const (
IndexFaissIvfFlat IndexType = "IVF_FLAT"
IndexFaissIvfPQ IndexType = "IVF_PQ"
IndexFaissIvfSQ8 IndexType = "IVF_SQ8"
IndexFaissIvfSQ8H IndexType = "IVF_SQ8_HYBRID"
IndexFaissBinIDMap IndexType = "BIN_FLAT"
IndexFaissBinIvfFlat IndexType = "BIN_IVF_FLAT"
IndexNSG IndexType = "NSG"
IndexHNSW IndexType = "HNSW"
IndexRHNSWFlat IndexType = "RHNSW_FLAT"
IndexRHNSWPQ IndexType = "RHNSW_PQ"
IndexRHNSWSQ IndexType = "RHNSW_SQ"
IndexANNOY IndexType = "ANNOY"
IndexNGTPANNG IndexType = "NGT_PANNG"
IndexNGTONNG IndexType = "NGT_ONNG"
IndexDISKANN IndexType = "DISKANN"
)