benwtrent commented on code in PR #13635:
URL: https://github.com/apache/lucene/pull/13635#discussion_r1712183885


##########
lucene/core/src/java/org/apache/lucene/util/hnsw/HnswGraphSearcher.java:
##########
@@ -70,6 +72,43 @@ public static void search(
     search(scorer, knnCollector, graph, graphSearcher, acceptOrds);
   }
 
+  /**
+   * Searches the HNSW graph for for the nerest neighbors of a query vector, 
starting from the
+   * provided entry points.
+   *
+   * @param scorer the scorer to compare the query with the nodes
+   * @param knnCollector a collector of top knn results to be returned
+   * @param graph the graph values. May represent the entire graph, or a level 
in a hierarchical
+   *     graph.
+   * @param acceptOrds {@link Bits} that represents the allowed document 
ordinals to match, or
+   *     {@code null} if they are all allowed to match.
+   * @param entryPointOrds the entry points for search.
+   */
+  public static void search(
+      RandomVectorScorer scorer,
+      KnnCollector knnCollector,
+      HnswGraph graph,
+      Bits acceptOrds,
+      DocIdSetIterator entryPointOrds)

Review Comment:
   @seanmacavaney looking at the code, I think you can do what you want if you 
get access to the underlying `SparseOffHeapVectorValues*` implementation. Then 
you can use the `IndexedDISI` to advance to each matched doc & use 
`disi.index()` to get the corresponding ordinal.
   
   Maybe `FlatVectorsReader` can have a method called `DocIdSetIterator 
    getVectorOrdinals(String field, DocIdSetIterator docIdIterator)` ?
   
   Or `RandomAccessVectorValues` can have such a method. Both of these 
interfaces are experimental, so changing them is OK.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to