Class Lucene90HnswGraphBuilder

  • public final class Lucene90HnswGraphBuilder
    extends Object
    Builder for HNSW graph. See Lucene90OnHeapHnswGraph for a gloss on the algorithm and the meaning of the hyperparameters.

    This class is preserved here only for tests.

    • Field Detail


        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<float[]> 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.
        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.
    • Method Detail

      • setInfoStream

        public void setInfoStream​(InfoStream infoStream)
        Set info-stream to output debugging information *