@@ -34,7 +34,14 @@ func (d *Document) interpretVectorIfApplicable(field index.Field) int {
3434}
3535
3636func (r * Reader ) VectorReader (ctx context.Context , vector []float32 ,
37- field string , k int64 , searchParams json.RawMessage ) (index.VectorReader , error ) {
37+ field string , k int64 , searchParams json.RawMessage ,
38+ selector index.EligibleDocumentSelector ) (index.VectorReader , error ) {
39+ if selector != nil && len (selector .SegmentEligibleDocs (0 )) == 0 {
40+ // if selector/filter is applicable but no eligible docs,
41+ // then current document does not qualify
42+ return NewVectorFieldReaderEmpty (), nil
43+ }
44+
3845 if r .s .doc == nil {
3946 return NewVectorFieldReaderEmpty (), nil
4047 }
@@ -55,18 +62,6 @@ func (r *Reader) VectorReader(ctx context.Context, vector []float32,
5562 return NewVectorFieldReaderMatch (dims ), nil
5663}
5764
58- func (r * Reader ) VectorReaderWithFilter (ctx context.Context , vector []float32 ,
59- field string , k int64 , searchParams json.RawMessage ,
60- filterIDs []index.IndexInternalID ) (index.VectorReader , error ) {
61- // if no filterIDs, current document does not qualify (in the
62- // single document index scenario)
63- if len (filterIDs ) == 0 {
64- return NewVectorFieldReaderEmpty (), nil
65- }
66-
67- return r .VectorReader (ctx , vector , field , k , searchParams )
68- }
69-
7065// -----------------------------------------------------------------------------
7166
7267type VectorFieldReader struct {
0 commit comments