Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ jobs:
container_image: "rapidsai/ci-conda:26.12-cuda${{ matrix.CUDA_VER }}-${{ matrix.LINUX_VER }}-py${{ matrix.PY_VER }}"
script: "ci/build_lucene.sh cuvs-java-cuda${{ matrix.CUDA_VER }}"
artifact-name: "cuvs-lucene-cuda${{ matrix.CUDA_VER }}"
file_to_upload: "java/cuvs-lucene/target/"
file_to_upload: "java/cuvs-lucene/*/target/"
sha: ${{ inputs.sha }}
python-build:
needs: [build-details, cpp-build]
Expand Down
26 changes: 25 additions & 1 deletion .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ jobs:
- conda-java-tests-other-arch
- conda-lucene-build-and-tests
- conda-lucene-tests-other-arch
- conda-lucene-tests-jdk21
- rust-build-matrix
- rust-build
- go-build-matrix
Expand Down Expand Up @@ -737,7 +738,7 @@ jobs:
container_image: "rapidsai/ci-conda:26.12-cuda${{ matrix.CUDA_VER }}-${{ matrix.LINUX_VER }}-py${{ matrix.PY_VER }}"
script: "ci/test_lucene.sh cuvs-java-cuda${{ matrix.CUDA_VER }}"
artifact-name: "cuvs-lucene-cuda${{ matrix.CUDA_VER }}"
file_to_upload: "java/cuvs-lucene/target/"
file_to_upload: "java/cuvs-lucene/*/target/"
conda-lucene-tests-other-arch:
# Verifies that cuvs-lucene, built against the amd64-built cuvs-java jar, also works
# correctly on every non-amd64 architecture, by running its test suite against the
Expand All @@ -761,6 +762,29 @@ jobs:
arch: "${{ matrix.ARCH }}"
container_image: "rapidsai/ci-conda:26.10-cuda${{ matrix.CUDA_VER }}-${{ matrix.LINUX_VER }}-py${{ matrix.PY_VER }}"
script: "ci/test_lucene_prebuilt.sh ${{ matrix.ARCH }} cuvs-java-cuda${{ matrix.CUDA_VER }} cuvs-lucene-cuda${{ matrix.CUDA_VER }}"
conda-lucene-tests-jdk21:
# Verifies that cuvs-lucene, compiled with --release 21, loads and works without the GPU on
# JDK 21, the oldest JDK it supports, by running its test suite against the amd64-built
# classes without recompiling -- see ci/test_lucene_jdk21.sh. It runs once, not per CUDA
# version: it uses no GPU, so the artifacts of any entry of the Java job's matrix will do.
# This matters because many applications built on Lucene 10 support JDK 21 as their minimum.
# cuvs-lucene only uses the GPU on JDK 22+, but it can't stop such an application from starting
# on JDK 21, so there it has to load and fall back to the CPU.
needs: [conda-java-build-and-tests-matrix, conda-java-build-and-tests, conda-lucene-build-and-tests]
permissions:
actions: read
contents: read
id-token: write
packages: read
pull-requests: read
secrets: inherit # zizmor: ignore[secrets-inherit]
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main
with:
build_type: pull-request
node_type: "cpu8"
arch: "amd64"
container_image: "rapidsai/ci-conda:26.12-cuda${{ fromJSON(needs.conda-java-build-and-tests-matrix.outputs.matrix).include[0].CUDA_VER }}-${{ fromJSON(needs.conda-java-build-and-tests-matrix.outputs.matrix).include[0].LINUX_VER }}-py${{ fromJSON(needs.conda-java-build-and-tests-matrix.outputs.matrix).include[0].PY_VER }}"
script: "ci/test_lucene_jdk21.sh cuvs-java-cuda${{ fromJSON(needs.conda-java-build-and-tests-matrix.outputs.matrix).include[0].CUDA_VER }} cuvs-lucene-cuda${{ fromJSON(needs.conda-java-build-and-tests-matrix.outputs.matrix).include[0].CUDA_VER }}"
rust-build-matrix:
needs: [conda-cpp-build, changed-files]
permissions:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ jobs:
container_image: "rapidsai/ci-conda:26.12-cuda${{ matrix.CUDA_VER }}-${{ matrix.LINUX_VER }}-py${{ matrix.PY_VER }}"
script: "ci/test_lucene.sh cuvs-java-cuda${{ matrix.CUDA_VER }}"
artifact-name: "cuvs-lucene-cuda${{ matrix.CUDA_VER }}"
file_to_upload: "java/cuvs-lucene/target/"
file_to_upload: "java/cuvs-lucene/*/target/"
conda-lucene-tests-other-arch:
# Verifies that cuvs-lucene, built against the amd64-built cuvs-java jar, also works
# correctly on every non-amd64 architecture, by running its test suite against the
Expand Down
3 changes: 2 additions & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ repos:
^cpp/include/.*[.](h|hpp|cuh)$|
^python/cuvs/cuvs/.*[.](py|pyx|pxd)$|
^java/cuvs-(java|lucene)/src/main/.*[.]java$|
^java/cuvs-lucene/lucene-[^/]+/src/since/.*[.]java$|
^rust/cuvs/src/.*[.]rs$|
^go/.*[.]go$|
^fern/scripts/generate_api_reference[.]py$|
Expand Down Expand Up @@ -121,7 +122,7 @@ repos:
name: spotless-fmt
entry: ci/checks/run_spotless.sh
pass_filenames: false
files: ^(java|examples/java)/(cuvs-java|cuvs-lucene)/([^/]+/)?src/.*\.java$
files: ^(java|examples/java)/(cuvs-java|cuvs-lucene)/([^/]+/){0,2}src/.*\.java$
exclude: .*/panama/.*
language: script
verbose: true
Expand Down
4 changes: 2 additions & 2 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -81,15 +81,15 @@ RUST_BUILD_DIR=${REPODIR}/rust/target
JAVA_INTERNAL_BUILD_DIR=${REPODIR}/java/internal/build
JAVA_BUILD_DIR=${REPODIR}/java/cuvs-java/target
JAVA_PANAMA_DIR=${REPODIR}/java/cuvs-java/src/main/java22/com/nvidia/cuvs/internal/panama
LUCENE_BUILD_DIR=${REPODIR}/java/cuvs-lucene/target
LUCENE_BUILD_DIRS=("${REPODIR}"/java/cuvs-lucene/target "${REPODIR}"/java/cuvs-lucene/*/target)
BUILD_DIRS=(
"${LIBCUVS_BUILD_DIR}"
"${PYTHON_BUILD_DIR}"
"${RUST_BUILD_DIR}"
"${JAVA_INTERNAL_BUILD_DIR}"
"${JAVA_BUILD_DIR}"
"${JAVA_PANAMA_DIR}"
"${LUCENE_BUILD_DIR}"
"${LUCENE_BUILD_DIRS[@]}"
)

# Set defaults for vars modified by flags to this script
Expand Down
2 changes: 1 addition & 1 deletion ci/checks/run_spotless.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ set -euo pipefail

# Keep these in sync with the spotless-fmt hook's 'files'/'exclude' entries in
# .pre-commit-config.yaml.
JAVA_SRC_PATTERN='^(java|examples/java)/(cuvs-java|cuvs-lucene)/([^/]+/)?src/.*\.java$'
JAVA_SRC_PATTERN='^(java|examples/java)/(cuvs-java|cuvs-lucene)/([^/]+/){0,2}src/.*\.java$'
JAVA_SRC_EXCLUDE='.*/panama/.*'

java_sources_modified() {
Expand Down
6 changes: 4 additions & 2 deletions ci/release/update-version.sh
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ done
NEXT_FULL_JAVA_TAG="${NEXT_SHORT_TAG}.${PATCH_PEP440}"
sed_runner "s/VERSION=\".*\"/VERSION=\"${NEXT_FULL_JAVA_TAG}\"/g" java/build.sh
sed_runner "s/VERSION=\".*\"/VERSION=\"${NEXT_FULL_JAVA_TAG}\"/g" java/cuvs-lucene/build.sh
for FILE in java/*/pom.xml java/cuvs-lucene/bench/pom.xml examples/java/cuvs-java/pom.xml examples/java/cuvs-lucene/pom.xml; do
for FILE in java/*/pom.xml java/cuvs-lucene/lucene-*/pom.xml java/cuvs-lucene/relocation/pom.xml java/cuvs-lucene/bench/pom.xml examples/java/cuvs-java/pom.xml examples/java/cuvs-lucene/pom.xml; do
sed_runner "/<!--CUVS_JAVA#VERSION_UPDATE_MARKER_START-->.*<!--CUVS_JAVA#VERSION_UPDATE_MARKER_END-->/s//<!--CUVS_JAVA#VERSION_UPDATE_MARKER_START--><version>${NEXT_FULL_JAVA_TAG}<\/version><!--CUVS_JAVA#VERSION_UPDATE_MARKER_END-->/g" "${FILE}"
done

Expand All @@ -182,6 +182,8 @@ sed_runner "s|/[[:digit:]]\{2\}\.[[:digit:]]\{2\}\.[[:digit:]]\{1,2\}/|/${NEXT_F

# This pattern is deliberately narrow: java/cuvs-lucene/README.md also links to a blog post whose
# title contains a release number, and that reference must not be rewritten.
sed_runner "s|<version>[[:digit:]]\{2\}\.[[:digit:]]\{2\}\.[[:digit:]]\{1,2\}</version>|<version>${NEXT_FULL_JAVA_TAG}</version>|g" java/cuvs-lucene/README.md
for FILE in java/cuvs-lucene/README.md fern/pages/installation/java.md; do
sed_runner "s|<version>[[:digit:]]\{2\}\.[[:digit:]]\{2\}\.[[:digit:]]\{1,2\}</version>|<version>${NEXT_FULL_JAVA_TAG}</version>|g" "${FILE}"
done

sed_runner "s|target/examples-[\.0-9]*-jar|target/examples-${NEXT_FULL_JAVA_TAG}-jar|g" examples/java/cuvs-lucene/README.md
86 changes: 86 additions & 0 deletions ci/test_lucene_jdk21.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
#!/bin/bash
# SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

set -euo pipefail

# Runs cuvs-lucene's test suite on JDK 21 against the classes from a prior amd64 build job,
# without recompiling. cuvs-lucene is compiled with --release 21 so that applications on JDK 21
# (Solr, for example) can load it, but cuvs-java needs JDK 22+ to reach the GPU. On JDK 21 the
# GPU tests skip themselves, and what runs checks that the codecs still load, read existing
# indexes and fall back to the CPU. None of that depends on the GPU or on the Lucene release, so
# this runs on a CPU node and tests only the newest Lucene module.
#
# Takes the names of the cuvs-java and cuvs-lucene artifacts uploaded by the amd64 jobs.

CUVS_JAVA_ARTIFACT="${1:?Usage: $0 <cuvs-java-artifact-name> <cuvs-lucene-artifact-name>}"
CUVS_LUCENE_ARTIFACT="${2:?Usage: $0 <cuvs-java-artifact-name> <cuvs-lucene-artifact-name>}"

if [ -e "/opt/conda/etc/profile.d/conda.sh" ]; then
. /opt/conda/etc/profile.d/conda.sh
fi

rapids-logger "Configuring conda strict channel priority"
conda config --set channel_priority strict

rapids-logger "Downloading artifacts from previous jobs"
CUVS_JAVA_DIR=$(rapids-download-from-github "${CUVS_JAVA_ARTIFACT}")
CUVS_LUCENE_DIR=$(rapids-download-from-github "${CUVS_LUCENE_ARTIFACT}")

rapids-logger "Generate JDK 21 testing dependencies"

ENV_YAML_DIR="$(mktemp -d)"

rapids-dependency-file-generator \
--output conda \
--file-key java_jdk21 \
--matrix "" | tee "${ENV_YAML_DIR}/env.yaml"

rapids-mamba-retry env create --yes -f "${ENV_YAML_DIR}/env.yaml" -n java_jdk21

# Temporarily allow unbound variables for conda activation.
set +u
conda activate java_jdk21
set -u

rapids-print-env
java -version

rapids-logger "Install the amd64-built cuvs-java artifact into the local Maven repository"

CUVS_JAVA_POM="${CUVS_JAVA_DIR}/pom.xml"
if [ ! -f "${CUVS_JAVA_POM}" ]; then
echo "Could not find pom.xml in the cuvs-java artifact at ${CUVS_JAVA_DIR}" >&2
exit 1
fi

mapfile -t CUVS_JAVA_JARS < <(find "${CUVS_JAVA_DIR}" -maxdepth 1 -name 'cuvs-java-*.jar' \
! -name '*-sources.jar' ! -name '*-javadoc.jar' ! -name '*-tests.jar' ! -name '*-cuda*.jar')
if [ "${#CUVS_JAVA_JARS[@]}" -ne 1 ]; then
echo "Expected exactly one cuvs-java jar in ${CUVS_JAVA_DIR}, found: ${CUVS_JAVA_JARS[*]:-none}" >&2
exit 1
fi

# cd is needed to pick up pom.xml in order to avoid rate limit of main maven repo
pushd java/cuvs-lucene
mvn --batch-mode install:install-file -Dfile="${CUVS_JAVA_JARS[0]}" -DpomFile="${CUVS_JAVA_POM}"
popd

rapids-logger "Restore the amd64-built cuvs-lucene target/ directories so Maven can run the tests without recompiling"

rm -rf java/cuvs-lucene/*/target
cp -a "${CUVS_LUCENE_DIR}/." java/cuvs-lucene/

EXITCODE=0
trap "EXITCODE=1" ERR
set +e

rapids-logger "Run cuvs-lucene tests on JDK 21 against the amd64-built classes"

# -Dskip.compile disables all compilation, see ci/test_lucene_prebuilt.sh.
pushd java/cuvs-lucene
mvn --batch-mode test -Dskip.compile=true -pl lucene-10.5
popd

rapids-logger "Test script exiting with value: $EXITCODE"
exit ${EXITCODE}
12 changes: 6 additions & 6 deletions ci/test_lucene_prebuilt.sh
Original file line number Diff line number Diff line change
Expand Up @@ -89,11 +89,11 @@ pushd java/cuvs-lucene
mvn --batch-mode install:install-file -Dfile="${CUVS_JAVA_JARS[0]}" -DpomFile="${CUVS_JAVA_POM}"
popd

rapids-logger "Restore the amd64-built cuvs-lucene target/ directory so Maven can run the tests without recompiling"
rapids-logger "Restore the amd64-built cuvs-lucene target/ directories so Maven can run the tests without recompiling"

rm -rf java/cuvs-lucene/target
mkdir -p java/cuvs-lucene/target
cp -a "${CUVS_LUCENE_DIR}/." java/cuvs-lucene/target/
# The artifact holds one <module>/target/ per module.
rm -rf java/cuvs-lucene/*/target
cp -a "${CUVS_LUCENE_DIR}/." java/cuvs-lucene/

EXITCODE=0
trap "EXITCODE=1" ERR
Expand All @@ -103,9 +103,9 @@ rapids-logger "Run cuvs-lucene tests against the amd64-built classes"

# -Dskip.compile activates the pom's "skip-compile" profile, which disables all
# compilation for this run, forcing test to use amd64-compiled jar instead of
# local code.
# local code. --fail-at-end tests every module even if an earlier one fails.
pushd java/cuvs-lucene
mvn --batch-mode test -Dskip.compile=true
mvn --batch-mode --fail-at-end test -Dskip.compile=true
popd

rapids-logger "Test script exiting with value: $EXITCODE"
Expand Down
11 changes: 11 additions & 0 deletions dependencies.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,10 @@ files:
- depends_on_nccl
- java
- rapids_build
java_jdk21:
output: none
includes:
- java_jdk21
py_build_libcuvs:
output: pyproject
pyproject_dir: python/libcuvs
Expand Down Expand Up @@ -671,6 +675,13 @@ dependencies:
- libboost-devel
- maven
- *openjdk
java_jdk21:
common:
- output_types: conda
packages:
- maven
# The oldest JDK cuvs-lucene supports; cuvs-java needs 22+ to use the GPU.
- openjdk=21.*
bench:
common:
- output_types: [conda, pyproject, requirements]
Expand Down
4 changes: 4 additions & 0 deletions examples/java/cuvs-lucene/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ First build `cuvs-lucene` and install it into your local Maven repository, as de
./build.sh libcuvs java lucene
```

The examples use Lucene 10.5 and the matching `cuvs-lucene-10.5` artifact. To run them against another
supported Lucene release, change the `lucene.version` and `cuvs.lucene.artifactId` properties in `pom.xml`, for
example to `10.3.2` and `cuvs-lucene-10.3`.

Then return to this directory:

```sh
Expand Down
10 changes: 6 additions & 4 deletions examples/java/cuvs-lucene/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
<maven.compiler.source>22</maven.compiler.source>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<lucene.version>10.5.1</lucene.version>
<cuvs.lucene.artifactId>cuvs-lucene-10.5</cuvs.lucene.artifactId>
</properties>

<repositories>
Expand Down Expand Up @@ -79,18 +81,18 @@
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
<version>10.2.0</version>
<version>${lucene.version}</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-codecs</artifactId>
<version>10.2.0</version>
<version>${lucene.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-backward-codecs</artifactId>
<version>10.2.0</version>
<version>${lucene.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
Expand All @@ -99,7 +101,7 @@
</dependency>
<dependency>
<groupId>com.nvidia.cuvs.lucene</groupId>
<artifactId>cuvs-lucene</artifactId>
<artifactId>${cuvs.lucene.artifactId}</artifactId>
<!--CUVS_JAVA#VERSION_UPDATE_MARKER_START--><version>26.12.0</version><!--CUVS_JAVA#VERSION_UPDATE_MARKER_END-->
</dependency>
</dependencies>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import static org.apache.lucene.index.VectorSimilarityFunction.EUCLIDEAN;

import com.nvidia.cuvs.lucene.AcceleratedHNSWParams;
import com.nvidia.cuvs.lucene.Lucene101AcceleratedHNSWCodec;
import com.nvidia.cuvs.lucene.CuVSCodecs;
import java.io.File;
import java.nio.file.Path;
import java.nio.file.Paths;
Expand Down Expand Up @@ -46,7 +46,7 @@ public class AcceleratedHnswExample {
public static void main(String[] args) throws Exception {

AcceleratedHNSWParams params = new AcceleratedHNSWParams.Builder().build();
Codec codec = new Lucene101AcceleratedHNSWCodec(params);
Codec codec = CuVSCodecs.acceleratedHNSW(params);
IndexWriterConfig config = new IndexWriterConfig().setCodec(codec).setUseCompoundFile(false);

random = new Random(222);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import static com.nvidia.cuvs.lucene.examples.Utils.generateDataset;
import static org.apache.lucene.index.VectorSimilarityFunction.EUCLIDEAN;

import com.nvidia.cuvs.lucene.CuVS2510GPUSearchCodec;
import com.nvidia.cuvs.lucene.CuVSCodecs;
import com.nvidia.cuvs.lucene.GPUKnnFloatVectorQuery;
import com.nvidia.cuvs.lucene.GPUSearchParams;
import com.nvidia.cuvs.spi.CuVSProvider;
Expand Down Expand Up @@ -54,7 +54,7 @@ public static void main(String[] args) throws Exception {
CuVSProvider.provider().enableRMMAsyncMemory();

GPUSearchParams params = new GPUSearchParams.Builder().build();
Codec codec = new CuVS2510GPUSearchCodec(params);
Codec codec = CuVSCodecs.gpuSearch(params);
IndexWriterConfig config = new IndexWriterConfig().setCodec(codec).setUseCompoundFile(false);

random = new Random(222);
Expand Down
22 changes: 20 additions & 2 deletions fern/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -567,6 +567,8 @@ navigation:
path: "./pages/lucene_api/lucene-api-com-nvidia-cuvs-lucene-acceleratedhnswutils.md"
- page: "CagraIndexParamsFactory"
path: "./pages/lucene_api/lucene-api-com-nvidia-cuvs-lucene-cagraindexparamsfactory.md"
- page: "CuVSCodecs"
path: "./pages/lucene_api/lucene-api-com-nvidia-cuvs-lucene-cuvscodecs.md"
- page: "FilterBitsetCacheConfig"
path: "./pages/lucene_api/lucene-api-com-nvidia-cuvs-lucene-filterbitsetcacheconfig.md"
- page: "FilterCuVSServiceProvider"
Expand All @@ -575,8 +577,6 @@ navigation:
path: "./pages/lucene_api/lucene-api-com-nvidia-cuvs-lucene-gpuindex.md"
- page: "GPUSearchParams"
path: "./pages/lucene_api/lucene-api-com-nvidia-cuvs-lucene-gpusearchparams.md"
- page: "LuceneProvider"
path: "./pages/lucene_api/lucene-api-com-nvidia-cuvs-lucene-luceneprovider.md"
- page: "ThreadLocalCuVSResourcesProvider"
path: "./pages/lucene_api/lucene-api-com-nvidia-cuvs-lucene-threadlocalcuvsresourcesprovider.md"
- page: "Utils"
Expand All @@ -597,6 +597,24 @@ navigation:
path: "./pages/lucene_api/lucene-api-com-nvidia-cuvs-lucene-gpuknnfloatvectorquery.md"
- page: "Lucene101AcceleratedHNSWCodec"
path: "./pages/lucene_api/lucene-api-com-nvidia-cuvs-lucene-lucene101acceleratedhnswcodec.md"
- page: "Lucene103AcceleratedHNSWBinaryQuantizedCodec"
path: "./pages/lucene_api/lucene-api-com-nvidia-cuvs-lucene-lucene103acceleratedhnswbinaryquantizedcodec.md"
- page: "Lucene103AcceleratedHNSWCodec"
path: "./pages/lucene_api/lucene-api-com-nvidia-cuvs-lucene-lucene103acceleratedhnswcodec.md"
- page: "Lucene103AcceleratedHNSWScalarQuantizedCodec"
path: "./pages/lucene_api/lucene-api-com-nvidia-cuvs-lucene-lucene103acceleratedhnswscalarquantizedcodec.md"
- page: "Lucene103CuVSGPUSearchCodec"
path: "./pages/lucene_api/lucene-api-com-nvidia-cuvs-lucene-lucene103cuvsgpusearchcodec.md"
- page: "Lucene104AcceleratedHNSWBinaryQuantizedCodec"
path: "./pages/lucene_api/lucene-api-com-nvidia-cuvs-lucene-lucene104acceleratedhnswbinaryquantizedcodec.md"
- page: "Lucene104AcceleratedHNSWCodec"
path: "./pages/lucene_api/lucene-api-com-nvidia-cuvs-lucene-lucene104acceleratedhnswcodec.md"
- page: "Lucene104AcceleratedHNSWScalarQuantizedCodec"
path: "./pages/lucene_api/lucene-api-com-nvidia-cuvs-lucene-lucene104acceleratedhnswscalarquantizedcodec.md"
- page: "Lucene104AcceleratedHNSWScalarQuantizedVectorsFormat"
path: "./pages/lucene_api/lucene-api-com-nvidia-cuvs-lucene-lucene104acceleratedhnswscalarquantizedvectorsformat.md"
- page: "Lucene104CuVSGPUSearchCodec"
path: "./pages/lucene_api/lucene-api-com-nvidia-cuvs-lucene-lucene104cuvsgpusearchcodec.md"
- page: "Lucene99AcceleratedHNSWVectorsFormat"
path: "./pages/lucene_api/lucene-api-com-nvidia-cuvs-lucene-lucene99acceleratedhnswvectorsformat.md"
- page: "Lucene99AcceleratedHNSWVectorsWriter"
Expand Down
Loading
Loading