msokolov commented on a change in pull request #416: URL: https://github.com/apache/lucene/pull/416#discussion_r752477271
########## File path: lucene/core/src/java/org/apache/lucene/index/KnnGraphValues.java ########## @@ -32,25 +33,41 @@ protected KnnGraphValues() {} /** - * Move the pointer to exactly {@code target}, the id of a node in the graph. After this method + * Move the pointer to exactly the given {@code level}'s {@code target}. After this method * returns, call {@link #nextNeighbor()} to return successive (ordered) connected node ordinals. * - * @param target must be a valid node in the graph, ie. ≥ 0 and < {@link + * @param level level of the graph + * @param target ordinal of a node in the graph, must be ≥ 0 and < {@link * VectorValues#size()}. */ - public abstract void seek(int target) throws IOException; + public abstract void seek(int level, int target) throws IOException; /** Returns the number of nodes in the graph */ public abstract int size(); /** * Iterates over the neighbor list. It is illegal to call this method after it returns - * NO_MORE_DOCS without calling {@link #seek(int)}, which resets the iterator. + * NO_MORE_DOCS without calling {@link #seek(int, int)}, which resets the iterator. * * @return a node ordinal in the graph, or NO_MORE_DOCS if the iteration is complete. */ public abstract int nextNeighbor() throws IOException; + /** Returns the number of levels of the graph */ + public abstract int numLevels() throws IOException; + + /** Returns graph's entry point on the top level * */ + public abstract int entryNode() throws IOException; + + /** + * Get all nodes on a given level as node 0th ordinals + * + * @param level level for which to get all nodes + * @return an iterator over nodes where {@code nextDoc} returns a next node ordinal + */ + // TODO: return a more suitable iterator over nodes than DocIdSetIterator Review comment: I guess we could make one up -- 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