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 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​(RandomAccessVectorValues<float[]> 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
    --- | --- | ---
    `Lucene90OnHeapHnswGraph` | `build​(RandomAccessVectorValues<float[]> vectors)` | Reads all the vectors from two copies of a `RandomAccessVectorValues`.
    `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 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<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.
      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<float[]> vectors)
                                        throws IOException

      Reads all the vectors from two copies of a `RandomAccessVectorValues`. 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 *