@@ -228,8 +228,17 @@ public class PQEntry implements Comparable<PQEntry> {
228228 this .nodeOffset = nodeOffset ;
229229 }
230230
231- private float margin ;
232- private long nodeOffset ;
231+ private final float margin ;
232+ private final long nodeOffset ;
233+
234+ public float getMargin () {
235+ return margin ;
236+ }
237+
238+ public long getNodeOffset () {
239+ return nodeOffset ;
240+ }
241+
233242
234243 @ Override
235244 public int compareTo (final PQEntry o ) {
@@ -254,17 +263,21 @@ public final List<Integer> getNearest(final float[] queryVector,
254263 public final List <Integer > getNearest (final float [] queryVector ,
255264 final int nResults , int searchK ) {
256265
257- ArrayList <PQEntry > sortedNNs = getNearestPqEntries (queryVector , nResults );
266+ List <PQEntry > resultingPQEntries = getNearestPqEntries (queryVector , nResults , searchK );
258267
259268 ArrayList <Integer > result = new ArrayList <>(nResults );
260- for (int i = 0 ; i < nResults && i < sortedNNs . size (); i ++ ) {
261- result .add ((int ) sortedNNs . get ( i ) .nodeOffset );
269+ for (PQEntry pqEntry : resultingPQEntries ) {
270+ result .add ((int ) pqEntry .nodeOffset );
262271 }
263272 return result ;
264273 }
265274
266- @ Override
267- public ArrayList <PQEntry > getNearestPqEntries (final float [] queryVector , final int nResults ) {
275+ @ Override
276+ public final List <PQEntry > getNearestPqEntries ( final float [] queryVector , final int nResults ) {
277+ return getNearestPqEntries (queryVector , nResults , -1 );
278+ }
279+
280+ public List <PQEntry > getNearestPqEntries (final float [] queryVector , final int nResults , int searchK ) {
268281 if (queryVector .length != DIMENSION ) {
269282 throw new RuntimeException (String .format ("queryVector must be size of %d, but was %d" ,
270283 DIMENSION , queryVector .length ));
@@ -325,7 +338,8 @@ public ArrayList<PQEntry> getNearestPqEntries(final float[] queryVector, final i
325338 }
326339 }
327340 Collections .sort (sortedNNs );
328- return sortedNNs ;
341+
342+ return sortedNNs .subList (0 , nResults );
329343 }
330344
331345 /**
0 commit comments