All Classes and Interfaces

Class
Description
 
Methods for manipulating arrays.
Interface for Bitset-like structures.
Bits impl of the specified length with all bits set.
Bits impl of the specified length with no bits set.
Base implementation for a bit set.
A variety of high efficiency bit twiddling routines and encoders for primitives.
Represents byte[], as a slice (offset + length) into an existing byte[].
 
 
A concurrent set of neighbors that encapsulates diversity/pruning mechanics.
Some useful constants.
Default provider returning scalar implementations.
 
BitSet of fixed length (numBits), backed by accessible (FixedBitSet.getBits()) long[], accessed with an int index, implementing Bits.
 
 
Represents a graph-based vector index.
 
Builder for Concurrent GraphIndex.
Searches a graph to find nearest neighbors to a query vector.
Builder
A BitSet implementation that grows as needed to accommodate set(index) calls.
 
A KMeans++ implementation for float vectors.
A List-backed implementation of the RandomAccessVectorValues interface.
A min heap that stores longs; a primitive priority queue that like all priority queues maintains a partial ordering of its elements such that the least element can always be found in constant time.
NeighborArray encodes the neighbors of a node and their mutual scores in the graph as a pair of growable arrays.
NeighborQueue uses a LongHeap to store lists of arcs in a graph, represented as a neighbor node id with an associated score packed together as a sortable long, which is sorted primarily by score.
Encapsulates comparing node distances.
 
 
 
Provides an API for encapsulating similarity to another node or vector.
Iterator over the graph nodes on a certain level that includes the size – the total number of nodes to be iterated over.
 
Helper APIs to encode numeric values as sortable bytes and vice-versa.
 
An GraphIndex that offers concurrent access; for typical graphs you will get significant speedups in construction and searching as you add threads.
 
A fork join pool which is sized to match the number of physical cores on the machine (avoiding hyper-thread count) This is important for heavily vectorized sections of the code since it can easily saturate memory bandwidth.
Allows any object to be pooled and released when work is done.
Wrapper class for items in the pool These are AutoClosable and are intended to be used in a try-with-resources statement.
A Product Quantization implementation for float vectors.
Estimates the size (memory representation) of Java objects.
This is a subset of DataInput, plus seek and readFully(float[]), which allows implementations to use a more efficient option like FloatBuffer.
Provides random access to vectors by dense ordinal.
 
Container class for results of an ANN search, along with associated metrics about the behavior of the search.
 
Simple sample implementation of RandomAccessReader.
 
A bit set that only stores longs that have at least one bit which is set.
 
The numeric datatype of the vector values.
A provider of vectorization implementations.
Vector similarity function; used in search to return top K most similar vectors to a target vector.
Utilities for computations with numeric arrays
Interface for implementations of VectorUtil support.
Methods or classes marked VisibleForTesting are intended for internal use only and may change without warning, regardless of their visibility.