Package org.apache.lucene.util.hnsw
Class OnHeapHnswGraph
- java.lang.Object
-
- org.apache.lucene.util.hnsw.HnswGraph
-
- org.apache.lucene.util.hnsw.OnHeapHnswGraph
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.lucene.util.hnsw.HnswGraph
HnswGraph.NodesIterator
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addNode(int level, int node)
Add node on the given levelint
entryNode()
Returns the graph's current entry node on the top level shown as ordinals of the nodes on 0th levelNeighborArray
getNeighbors(int level, int node)
Returns theNeighborQueue
connected to the given node.HnswGraph.NodesIterator
getNodesOnLevel(int level)
Get all nodes on a given level as node 0th ordinalsint
nextNeighbor()
Iterates over the neighbor list.int
numLevels()
Returns the current number of levels in the graphvoid
seek(int level, int targetNode)
Move the pointer to exactly the givenlevel
'starget
.int
size()
Returns the number of nodes in the graph
-
-
-
Method Detail
-
getNeighbors
public NeighborArray getNeighbors(int level, int node)
Returns theNeighborQueue
connected to the given node.- Parameters:
level
- level of the graphnode
- the node whose neighbors are returned, represented as an ordinal on the level 0.
-
size
public int size()
Description copied from class:HnswGraph
Returns the number of nodes in the graph
-
addNode
public void addNode(int level, int node)
Add node on the given level- Parameters:
level
- level to add a node onnode
- the node to add, represented as an ordinal on the level 0.
-
seek
public void seek(int level, int targetNode)
Description copied from class:HnswGraph
Move the pointer to exactly the givenlevel
'starget
. After this method returns, callHnswGraph.nextNeighbor()
to return successive (ordered) connected node ordinals.- Specified by:
seek
in classHnswGraph
- Parameters:
level
- level of the graphtargetNode
- ordinal of a node in the graph, must be ≥ 0 and <VectorValues.size()
.
-
nextNeighbor
public int nextNeighbor()
Description copied from class:HnswGraph
Iterates over the neighbor list. It is illegal to call this method after it returns NO_MORE_DOCS without callingHnswGraph.seek(int, int)
, which resets the iterator.- Specified by:
nextNeighbor
in classHnswGraph
- Returns:
- a node ordinal in the graph, or NO_MORE_DOCS if the iteration is complete.
-
numLevels
public int numLevels()
Returns the current number of levels in the graph
-
entryNode
public int entryNode()
Returns the graph's current entry node on the top level shown as ordinals of the nodes on 0th level
-
getNodesOnLevel
public HnswGraph.NodesIterator getNodesOnLevel(int level)
Description copied from class:HnswGraph
Get all nodes on a given level as node 0th ordinals- Specified by:
getNodesOnLevel
in classHnswGraph
- Parameters:
level
- level for which to get all nodes- Returns:
- an iterator over nodes where
nextInt
returns a next node on the level
-
-