@@ -1867,8 +1867,9 @@ impl<R: SeekRead> VectorIndexReader<R> {
18671867
18681868 /// Distance range search. For the contract see
18691869 /// [`IVFFlatIndexReader::range_search`] (exact distances),
1870- /// [`IVFRQIndexReader::range_search`] (RQ estimates), and
1871- /// [`IVFSQIndexReader::range_search`] (SQ estimates). Only L2 is supported.
1870+ /// [`IVFRQIndexReader::range_search`] (RQ estimates),
1871+ /// [`IVFSQIndexReader::range_search`] (SQ estimates), and
1872+ /// [`IVFPQIndexReader::range_search`] (PQ estimates). Only L2 is supported.
18721873 ///
18731874 /// The empty-band short-circuit lives **inside each family's reader**, so a
18741875 /// family that cannot do range search at all still fails loud for every
@@ -1884,15 +1885,16 @@ impl<R: SeekRead> VectorIndexReader<R> {
18841885 Self :: IvfFlat ( reader) => reader. range_search ( query, params) ,
18851886 Self :: IvfRq ( reader) => reader. range_search ( query, params) ,
18861887 Self :: IvfSq ( reader) => reader. range_search ( query, params) ,
1887- Self :: IvfPq ( _ ) => Err ( range_unsupported ( "ivf_pq" ) ) ,
1888+ Self :: IvfPq ( reader ) => reader . range_search ( query , params ) ,
18881889 Self :: DiskAnn ( _) => Err ( range_unsupported ( "diskann" ) ) ,
18891890 }
18901891 }
18911892
18921893 /// Range search restricted to a serialized Roaring allow-list. For the
18931894 /// contract see [`IVFFlatIndexReader::range_search_with_roaring_filter`],
1894- /// [`IVFRQIndexReader::range_search`], and
1895- /// [`IVFSQIndexReader::range_search_with_roaring_filter`].
1895+ /// [`IVFRQIndexReader::range_search`],
1896+ /// [`IVFSQIndexReader::range_search_with_roaring_filter`], and
1897+ /// [`IVFPQIndexReader::range_search_with_roaring_filter`].
18961898 pub fn range_search_with_roaring_filter (
18971899 & mut self ,
18981900 query : & [ f32 ] ,
@@ -1909,7 +1911,7 @@ impl<R: SeekRead> VectorIndexReader<R> {
19091911 Self :: IvfFlat ( reader) => reader. range_search_with_filter ( query, params, Some ( & filter) ) ,
19101912 Self :: IvfRq ( reader) => reader. range_search_with_filter ( query, params, Some ( & filter) ) ,
19111913 Self :: IvfSq ( reader) => reader. range_search_with_filter ( query, params, Some ( & filter) ) ,
1912- Self :: IvfPq ( _ ) => Err ( range_unsupported ( "ivf_pq" ) ) ,
1914+ Self :: IvfPq ( reader ) => reader . range_search_with_filter ( query , params , Some ( & filter ) ) ,
19131915 Self :: DiskAnn ( _) => Err ( range_unsupported ( "diskann" ) ) ,
19141916 }
19151917 }
@@ -1928,7 +1930,7 @@ impl<R: SeekRead> VectorIndexReader<R> {
19281930 Self :: IvfFlat ( reader) => reader. range_search_batch ( queries, query_count, params) ,
19291931 Self :: IvfRq ( reader) => reader. range_search_batch ( queries, query_count, params) ,
19301932 Self :: IvfSq ( reader) => reader. range_search_batch ( queries, query_count, params) ,
1931- Self :: IvfPq ( _ ) => Err ( range_unsupported ( "ivf_pq" ) ) ,
1933+ Self :: IvfPq ( reader ) => reader . range_search_batch ( queries , query_count , params ) ,
19321934 Self :: DiskAnn ( _) => Err ( range_unsupported ( "diskann" ) ) ,
19331935 }
19341936 }
@@ -1954,7 +1956,9 @@ impl<R: SeekRead> VectorIndexReader<R> {
19541956 Self :: IvfSq ( reader) => {
19551957 reader. range_search_batch_with_filter ( queries, query_count, params, Some ( & filter) )
19561958 }
1957- Self :: IvfPq ( _) => Err ( range_unsupported ( "ivf_pq" ) ) ,
1959+ Self :: IvfPq ( reader) => {
1960+ reader. range_search_batch_with_filter ( queries, query_count, params, Some ( & filter) )
1961+ }
19581962 Self :: DiskAnn ( _) => Err ( range_unsupported ( "diskann" ) ) ,
19591963 }
19601964 }
0 commit comments