Package org.apache.lucene.backward_codecs.lucene90

# Class Lucene90HnswGraphBuilder

java.lang.Object
org.apache.lucene.backward_codecs.lucene90.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 Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final 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
  `Lucene90HnswGraphBuilder(FloatVectorValues 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

  Modifier and Type
  Method
  Description
  `Lucene90OnHeapHnswGraph`
  `build(FloatVectorValues vectors)`
  Reads all the vectors from two copies of a `FloatVectorValues`.
  `void`
  `setInfoStream(InfoStream infoStream)`
  Set info-stream to output debugging information *

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### 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 Details

  - ### Lucene90HnswGraphBuilder

    public Lucene90HnswGraphBuilder(FloatVectorValues 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 Details

  - ### build

    public Lucene90OnHeapHnswGraph build(FloatVectorValues vectors) throws IOException
    Reads all the vectors from two copies of a `FloatVectorValues`. 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 *