Class Lucene90HnswGraphBuilder
- java.lang.Object
-
- org.apache.lucene.backward_codecs.lucene90.Lucene90HnswGraphBuilder
-
public final class Lucene90HnswGraphBuilder extends Object
Builder for HNSW graph. SeeLucene90OnHeapHnswGraphfor a gloss on the algorithm and the meaning of the hyperparameters.This class is preserved here only for tests.
-
-
Field Summary
Fields Modifier and Type Field Description static StringHNSW_COMPONENTA name for the HNSW component for the info-stream *static longrandSeedRandom seed for level generation; public to expose for testing *
-
Constructor Summary
Constructors Constructor Description Lucene90HnswGraphBuilder(RandomAccessVectorValues.Floats vectors, VectorSimilarityFunction similarityFunction, int maxConn, int beamWidth, long seed)Reads all the vectors from vector values, 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 Lucene90OnHeapHnswGraphbuild(RandomAccessVectorValues.Floats vectors)Reads all the vectors from two copies of aRandomAccessVectorValues.voidsetInfoStream(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
-
Lucene90HnswGraphBuilder
public Lucene90HnswGraphBuilder(RandomAccessVectorValues.Floats vectors, VectorSimilarityFunction similarityFunction, int maxConn, int beamWidth, long seed) throws IOException
Reads all the vectors from vector values, 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.maxConn- the number of connections to make when adding a new graph node; roughly speaking the graph fanout.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 Lucene90OnHeapHnswGraph build(RandomAccessVectorValues.Floats vectors) throws IOException
Reads all the vectors from two copies of aRandomAccessVectorValues. 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 *
-
-