HnswQuery

View as Markdown

Java package: com.nvidia.cuvs

1public class HnswQuery

HnswQuery holds the query vectors to be used while invoking search on the HNSW index.

Thread Safety: Each HnswQuery instance should use its own CuVSResources object that is not shared with other threads. Sharing CuVSResources between threads can lead to memory allocation errors or JVM crashes.

Public Members

HnswQuery

1private HnswQuery( HnswSearchParams hnswSearchParams, float[][] queryVectors, LongToIntFunction mapping, int topK, CuVSResources resources)

Constructs an instance of HnswQuery using queryVectors, mapping, and topK.

Parameters

NameDescription
hnswSearchParamsthe search parameters to use
queryVectors2D float query vector array
mappinga function mapping ordinals (neighbor IDs) to custom user IDs
topKthe top k results to return
resourcesCuVSResources instance to use for this query

Source: java/cuvs-java/src/main/java/com/nvidia/cuvs/HnswQuery.java:38

getHnswSearchParams

1public HnswSearchParams getHnswSearchParams()

Gets the instance of HnswSearchParams.

Returns

the instance of HnswSearchParams

Source: java/cuvs-java/src/main/java/com/nvidia/cuvs/HnswQuery.java:56

getQueryVectors

1public float[][] getQueryVectors()

Gets the query vector 2D float array.

Returns

2D float array

Source: java/cuvs-java/src/main/java/com/nvidia/cuvs/HnswQuery.java:65

getMapping

1public LongToIntFunction getMapping()

Gets the function mapping ordinals (neighbor IDs) to custom user IDs

Source: java/cuvs-java/src/main/java/com/nvidia/cuvs/HnswQuery.java:72

getTopK

1public int getTopK()

Gets the topK value.

Returns

an integer

Source: java/cuvs-java/src/main/java/com/nvidia/cuvs/HnswQuery.java:81

getResources

1public CuVSResources getResources()

Gets the CuVSResources instance for this query.

Returns

the CuVSResources instance

Source: java/cuvs-java/src/main/java/com/nvidia/cuvs/HnswQuery.java:90

Builder

1public Builder(CuVSResources resources)

Constructor that requires CuVSResources.

Important: The provided CuVSResources instance should not be shared with other threads. Each thread performing searches should create its own CuVSResources instance to avoid memory allocation conflicts and potential JVM crashes.

Parameters

NameDescription
resourcesthe CuVSResources instance to use for this query (must not be shared between threads)

Source: java/cuvs-java/src/main/java/com/nvidia/cuvs/HnswQuery.java:125

withSearchParams

1public Builder withSearchParams(HnswSearchParams hnswSearchParams)

Sets the instance of configured HnswSearchParams to be passed for search.

Parameters

NameDescription
hnswSearchParamsan instance of the configured HnswSearchParams to be used for this query

Returns

an instance of this Builder

Source: java/cuvs-java/src/main/java/com/nvidia/cuvs/HnswQuery.java:136

withQueryVectors

1public Builder withQueryVectors(float[][] queryVectors)

Registers the query vectors to be passed in the search call.

Parameters

NameDescription
queryVectors2D float query vector array

Returns

an instance of this Builder

Source: java/cuvs-java/src/main/java/com/nvidia/cuvs/HnswQuery.java:147

withMapping

1public Builder withMapping(LongToIntFunction mapping)

Sets the function used to map ordinals (neighbor IDs) to custom user IDs

Parameters

NameDescription
mappinga function mapping ordinals (neighbor IDs) to custom user IDs

Returns

an instance of this Builder

Source: java/cuvs-java/src/main/java/com/nvidia/cuvs/HnswQuery.java:158

withTopK

1public Builder withTopK(int topK)

Registers the topK value.

Parameters

NameDescription
topKthe topK value used to retrieve the topK results

Returns

an instance of this Builder

Source: java/cuvs-java/src/main/java/com/nvidia/cuvs/HnswQuery.java:169

build

1public HnswQuery build()

Builds an instance of HnswQuery

Returns

an instance of HnswQuery

Source: java/cuvs-java/src/main/java/com/nvidia/cuvs/HnswQuery.java:179

Source: java/cuvs-java/src/main/java/com/nvidia/cuvs/HnswQuery.java:21