mayya-sharipova commented on a change in pull request #315: URL: https://github.com/apache/lucene/pull/315#discussion_r717057996
########## File path: lucene/core/src/java/org/apache/lucene/codecs/lucene90/Lucene90HnswVectorsReader.java ########## @@ -204,6 +217,41 @@ private FieldEntry readField(DataInput input) throws IOException { return new FieldEntry(input, similarityFunction); } + private void fillGraphNodesAndOffsetsByLevel() throws IOException { + for (FieldEntry entry : fields.values()) { + IndexInput input = + graphIndex.slice("graph-index", entry.graphIndexOffset, entry.graphIndexLength); + int numOfLevels = input.readInt(); + assert entry.numOfLevels == numOfLevels; + int[] numOfNodesByLevel = new int[numOfLevels]; + + // read nodes by level + for (int level = 0; level < numOfLevels; level++) { + numOfNodesByLevel[level] = input.readInt(); + if (level == 0) { + entry.nodesByLevel.add(null); + } else { + final int[] nodesOnLevel = new int[numOfNodesByLevel[level]]; + for (int i = 0; i < numOfNodesByLevel[level]; i++) { + nodesOnLevel[i] = input.readVInt(); + } + entry.nodesByLevel.add(nodesOnLevel); + } + } + + // read offsets by level + long offset = 0; + for (int level = 0; level < numOfLevels; level++) { + long[] ordOffsets = new long[numOfNodesByLevel[level]]; Review comment: There could not be a level without nodes. The reason why we add `nodesByLevel.add(null)` for level 0th, is that this level contains all nodes, so we don't need this info. I've added extra assertions and comments in 7e60c4d009652fcc6278bdb7f4a02982eb667900. Hopefully this clarifies things. -- 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