@@ -81,9 +81,6 @@ type Index interface {
81
81
SearchBinaryWithIDs (x []uint8 , k int64 , params json.RawMessage ) (distances []int32 ,
82
82
labels []int64 , err error )
83
83
84
- SearchBinaryWithoutIDs (x []uint8 , k int64 , exclude []int64 ,
85
- params json.RawMessage ) (distances []int32 , labels []int64 , err error )
86
-
87
84
SearchBinary (x []uint8 , k int64 ) (distances []int32 ,
88
85
labels []int64 , err error )
89
86
@@ -397,46 +394,11 @@ func (idx *faissIndex) SearchWithoutIDs(x []float32, k int64, exclude []int64, p
397
394
}
398
395
defer searchParams .Delete ()
399
396
400
- d , labels , err := idx .searchWithParams (x , k , searchParams .sp )
401
- distances = d .([]float32 )
397
+ distances , labels , err = idx .searchWithParams (x , k , searchParams .sp )
402
398
403
399
return
404
400
}
405
401
406
- func (idx * faissIndex ) SearchBinaryWithoutIDs (x []uint8 , k int64 , exclude []int64 ,
407
- params json.RawMessage ) (distances []int32 , labels []int64 , err error ,
408
- ) {
409
- if params == nil && len (exclude ) == 0 {
410
- return idx .SearchBinary (x , k )
411
- }
412
-
413
- var selector * C.FaissIDSelector
414
- if len (exclude ) > 0 {
415
- excludeSelector , err := NewIDSelectorNot (exclude )
416
- if err != nil {
417
- return nil , nil , err
418
- }
419
- selector = excludeSelector .Get ()
420
- defer excludeSelector .Delete ()
421
- }
422
-
423
- searchParams , err := NewSearchParams (idx , params , selector , nil )
424
- if err != nil {
425
- return nil , nil , err
426
- }
427
- defer searchParams .Delete ()
428
-
429
- nq := (len (x ) * 8 ) / idx .D ()
430
-
431
- distances = make ([]int32 , int64 (nq )* k )
432
- labels = make ([]int64 , int64 (nq )* k )
433
-
434
- d , labels , err := idx .searchWithParams (x , k , searchParams .sp )
435
- distances = d .([]int32 )
436
-
437
- return distances , labels , nil
438
- }
439
-
440
402
func (idx * faissIndex ) SearchBinaryWithIDs (x []uint8 , k int64 ,
441
403
params json.RawMessage ) (distances []int32 , labels []int64 , err error ,
442
404
) {
@@ -497,8 +459,7 @@ func (idx *faissIndex) SearchWithIDs(x []float32, k int64, include []int64,
497
459
}
498
460
defer searchParams .Delete ()
499
461
500
- d , labels , err := idx .searchWithParams (x , k , searchParams .sp )
501
- distances = d .([]float32 )
462
+ distances , labels , err = idx .searchWithParams (x , k , searchParams .sp )
502
463
return
503
464
}
504
465
@@ -594,49 +555,23 @@ func (idx *faissIndex) Close() {
594
555
C .faiss_IndexBinary_free (idx .idxBinary )
595
556
}
596
557
597
- func (idx * faissIndex ) searchWithParams (x interface {} , k int64 , searchParams * C.FaissSearchParameters ) (
598
- distances interface {} , labels []int64 , err error ,
558
+ func (idx * faissIndex ) searchWithParams (x [] float32 , k int64 , searchParams * C.FaissSearchParameters ) (
559
+ distances [] float32 , labels []int64 , err error ,
599
560
) {
600
- floatVec , ok := x .([]float32 )
601
- if ok {
602
- n := len (floatVec ) / idx .D ()
603
- distancesFloat := make ([]float32 , int64 (n )* k )
604
- labels = make ([]int64 , int64 (n )* k )
605
-
606
- if c := C .faiss_Index_search_with_params (
607
- idx .idx ,
608
- C .idx_t (n ),
609
- (* C .float )(& floatVec [0 ]),
610
- C .idx_t (k ),
611
- searchParams ,
612
- (* C .float )(& distancesFloat [0 ]),
613
- (* C .idx_t )(& labels [0 ]),
614
- ); c != 0 {
615
- err = getLastError ()
616
- }
617
-
618
- distances = distancesFloat
619
- } else {
620
- c , ok := x .([]uint8 )
621
- if ok {
622
- n := (len (c ) * 8 ) / idx .D ()
623
- distancesBinary := make ([]int32 , int64 (n )* k )
624
- labels = make ([]int64 , int64 (n )* k )
625
-
626
- if c := C .faiss_IndexBinary_search_with_params (
627
- idx .idxBinary ,
628
- C .idx_t (n ),
629
- (* C .uint8_t )(& c [0 ]),
630
- C .idx_t (k ),
631
- searchParams ,
632
- (* C .int32_t )(& distancesBinary [0 ]),
633
- (* C .idx_t )(& labels [0 ]),
634
- ); c != 0 {
635
- err = getLastError ()
636
- }
561
+ n := len (x ) / idx .D ()
562
+ distances = make ([]float32 , int64 (n )* k )
563
+ labels = make ([]int64 , int64 (n )* k )
637
564
638
- distances = distancesBinary
639
- }
565
+ if c := C .faiss_Index_search_with_params (
566
+ idx .idx ,
567
+ C .idx_t (n ),
568
+ (* C .float )(& x [0 ]),
569
+ C .idx_t (k ),
570
+ searchParams ,
571
+ (* C .float )(& distances [0 ]),
572
+ (* C .idx_t )(& labels [0 ]),
573
+ ); c != 0 {
574
+ err = getLastError ()
640
575
}
641
576
642
577
return
0 commit comments