diff --git a/src/main/java/com/nvidia/cuvs/lucene/CuVS2510GPUVectorsWriter.java b/src/main/java/com/nvidia/cuvs/lucene/CuVS2510GPUVectorsWriter.java index e8fb304..97fedf9 100644 --- a/src/main/java/com/nvidia/cuvs/lucene/CuVS2510GPUVectorsWriter.java +++ b/src/main/java/com/nvidia/cuvs/lucene/CuVS2510GPUVectorsWriter.java @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION. + * SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 */ package com.nvidia.cuvs.lucene; @@ -243,13 +243,16 @@ private void writeFieldInternal(FieldInfo fieldInfo, List vectors) thro private void writeCagraIndex(OutputStream os, CuVSMatrix dataset) throws Throwable { CagraIndexParams params = CagraIndexParamsFactory.create(gpuSearchParams, dataset.size(), dataset.columns()); - CagraIndex index = - CagraIndex.newBuilder(getCuVSResourcesInstance()) - .withDataset(dataset) - .withIndexParams(params) - .build(); - index.serialize(os); - index.close(); + try (CagraIndex index = + CagraIndex.newBuilder(getCuVSResourcesInstance()) + .withDataset(dataset) + .withIndexParams(params) + .build(); + var deviceVectors = dataset.toDevice(getCuVSResourcesInstance()); + var indexDataset = index.makePaddedDataset(deviceVectors)) { + index.updateDataset(indexDataset); + index.serialize(os); + } } /**