diff --git a/faiss_vector_posting.go b/faiss_vector_posting.go index 360e903..63070f5 100644 --- a/faiss_vector_posting.go +++ b/faiss_vector_posting.go @@ -428,7 +428,7 @@ func (sb *SegmentBase) InterpretVectorIndex(field string, requiresFiltering bool var selector faiss.Selector var err error - excludeVecIDs := make([]int64, 0, len(vecDocIDMap)- + vectorIDsToExclude := make([]int64, 0, len(vecDocIDMap)- len(vectorIDsToInclude)) if float32(eligibleVecIDsBitmap.GetCardinality())/ float32(len(vecDocIDMap)) > 0.5 { @@ -436,17 +436,17 @@ func (sb *SegmentBase) InterpretVectorIndex(field string, requiresFiltering bool vecIDs := docVecIDMap[uint32(eligibleDocID)] for _, vecID := range vecIDs { if !eligibleVecIDsBitmap.Contains(uint32(vecID)) { - excludeVecIDs = append(excludeVecIDs, (vecID)) + vectorIDsToExclude = append(vectorIDsToExclude, (vecID)) } } } - selector, err = faiss.NewIDSelectorNot(excludeVecIDs) - if err != nil { - return nil, err - } + selector, err = faiss.NewIDSelectorNot(vectorIDsToExclude) } else { selector, err = faiss.NewIDSelectorBatch(vectorIDsToInclude) } + if err != nil { + return nil, err + } // Determining which clusters, identified by centroid ID, // have at least one eligible vector and hence, ought to be