From d4e0b6e91bf113c6566e06bd3285088d4457e162 Mon Sep 17 00:00:00 2001 From: Cai Yudong Date: Tue, 21 Feb 2023 17:36:26 +0800 Subject: [PATCH] Remove unused index param check (#22271) Signed-off-by: Yudong Cai --- internal/util/indexparamcheck/conf_adapter.go | 196 ------------ .../util/indexparamcheck/conf_adapter_mgr.go | 7 - .../indexparamcheck/conf_adapter_mgr_test.go | 84 ----- .../util/indexparamcheck/conf_adapter_test.go | 302 ------------------ internal/util/indexparamcheck/index_type.go | 7 - 5 files changed, 596 deletions(-) diff --git a/internal/util/indexparamcheck/conf_adapter.go b/internal/util/indexparamcheck/conf_adapter.go index 7f3bca360e..c7e15e194c 100644 --- a/internal/util/indexparamcheck/conf_adapter.go +++ b/internal/util/indexparamcheck/conf_adapter.go @@ -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 } diff --git a/internal/util/indexparamcheck/conf_adapter_mgr.go b/internal/util/indexparamcheck/conf_adapter_mgr.go index 51d71f22ca..feefbf3658 100644 --- a/internal/util/indexparamcheck/conf_adapter_mgr.go +++ b/internal/util/indexparamcheck/conf_adapter_mgr.go @@ -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() } diff --git a/internal/util/indexparamcheck/conf_adapter_mgr_test.go b/internal/util/indexparamcheck/conf_adapter_mgr_test.go index 075ae72bc2..305f501693 100644 --- a/internal/util/indexparamcheck/conf_adapter_mgr_test.go +++ b/internal/util/indexparamcheck/conf_adapter_mgr_test.go @@ -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) { diff --git a/internal/util/indexparamcheck/conf_adapter_test.go b/internal/util/indexparamcheck/conf_adapter_test.go index 73aedd90c0..77f64ae61c 100644 --- a/internal/util/indexparamcheck/conf_adapter_test.go +++ b/internal/util/indexparamcheck/conf_adapter_test.go @@ -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) - } - } -} diff --git a/internal/util/indexparamcheck/index_type.go b/internal/util/indexparamcheck/index_type.go index 99a466d51e..d71b2594f4 100644 --- a/internal/util/indexparamcheck/index_type.go +++ b/internal/util/indexparamcheck/index_type.go @@ -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" )