Package org.apache.lucene.util.hnsw
Class HnswGraphBuilder
- java.lang.Object
-
- org.apache.lucene.util.hnsw.HnswGraphBuilder
-
-
Field Summary
Fields Modifier and Type Field Description static String
HNSW_COMPONENT
A name for the HNSW component for the info-stream *static long
randSeed
Random seed for level generation; public to expose for testing *
-
Constructor Summary
Constructors Constructor Description HnswGraphBuilder(RandomAccessVectorValuesProducer vectors, VectorSimilarityFunction similarityFunction, int M, int beamWidth, long seed)
Reads all the vectors from a VectorValues, builds a graph connecting them by their dense ordinals, using the given hyperparameter settings, and returns the resulting graph.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description OnHeapHnswGraph
build(RandomAccessVectorValues vectors)
Reads all the vectors from two copies of a random access VectorValues.void
setInfoStream(InfoStream infoStream)
Set info-stream to output debugging information *
-
-
-
Field Detail
-
HNSW_COMPONENT
public static final String HNSW_COMPONENT
A name for the HNSW component for the info-stream *- See Also:
- Constant Field Values
-
randSeed
public static long randSeed
Random seed for level generation; public to expose for testing *
-
-
Constructor Detail
-
HnswGraphBuilder
public HnswGraphBuilder(RandomAccessVectorValuesProducer vectors, VectorSimilarityFunction similarityFunction, int M, int beamWidth, long seed) throws IOException
Reads all the vectors from a VectorValues, builds a graph connecting them by their dense ordinals, using the given hyperparameter settings, and returns the resulting graph.- Parameters:
vectors
- the vectors whose relations are represented by the graph - must provide a different view over those vectors than the one used to add via addGraphNode.M
- – graph fanout parameter used to calculate the maximum number of connections a node can have – M on upper layers, and M * 2 on the lowest level.beamWidth
- the size of the beam search to use when finding nearest neighbors.seed
- the seed for a random number generator used during graph construction. Provide this to ensure repeatable construction.- Throws:
IOException
-
-
Method Detail
-
build
public OnHeapHnswGraph build(RandomAccessVectorValues vectors) throws IOException
Reads all the vectors from two copies of a random access VectorValues. Providing two copies enables efficient retrieval without extra data copying, while avoiding collision of the returned values.- Parameters:
vectors
- the vectors for which to build a nearest neighbors graph. Must be an independet accessor for the vectors- Throws:
IOException
-
setInfoStream
public void setInfoStream(InfoStream infoStream)
Set info-stream to output debugging information *
-
-