pub unsafe extern "C" fn cuvsHnswExtend(
res: cuvsResources_t,
params: cuvsHnswExtendParams_t,
additional_dataset: *mut DLManagedTensor,
index: cuvsHnswIndex_t,
) -> cuvsError_tExpand description
@brief Add new vectors to an HNSW index
NOTE: The HNSW index can only be extended when the hierarchy is CPU
when converting from a CAGRA index.
@param[in] res cuvsResources_t opaque C handle @param[in] params cuvsHnswExtendParams_t used to extend Hnsw index @param[in] additional_dataset DLManagedTensor* additional dataset to extend the index @param[inout] index cuvsHnswIndex_t to extend
@return cuvsError_t
@code{.c} #include <cuvs/core/c_api.h> #include <cuvs/neighbors/cagra.h> #include <cuvs/neighbors/hnsw.h>
// Create cuvsResources_t cuvsResources_t res; cuvsError_t res_create_status = cuvsResourcesCreate(&res);
// create an index with cuvsCagraBuild
// Convert the CAGRA index to an HNSW index cuvsHnswIndex_t hnsw_index; cuvsHnswIndexCreate(&hnsw_index); cuvsHnswIndexParams_t hnsw_params; cuvsHnswIndexParamsCreate(&hnsw_params); cuvsHnswFromCagra(res, hnsw_params, cagra_index, hnsw_index);
// Extend the HNSW index with additional vectors DLManagedTensor additional_dataset; cuvsHnswExtendParams_t extend_params; cuvsHnswExtendParamsCreate(&extend_params); cuvsHnswExtend(res, extend_params, additional_dataset, hnsw_index);
// de-allocate hnsw_params, hnsw_index, extend_params and res
cuvsError_t hnsw_params_destroy_status = cuvsHnswIndexParamsDestroy(hnsw_params);
cuvsError_t hnsw_index_destroy_status = cuvsHnswIndexDestroy(hnsw_index);
cuvsError_t extend_params_destroy_status = cuvsHnswExtendParamsDestroy(extend_params);
cuvsError_t res_destroy_status = cuvsResourcesDestroy(res);
@endcode