Nothing
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
options(bigANNOY.progress = FALSE)
set.seed(20260326)
library(bigANNOY)
library(bigmemory)
artifact_dir <- file.path(tempdir(), "bigannoy-lifecycle")
dir.create(artifact_dir, recursive = TRUE, showWarnings = FALSE)
ref_dense <- matrix(
c(
0.0, 0.1, 0.2,
0.1, 0.0, 0.1,
0.2, 0.1, 0.0,
1.0, 1.1, 1.2,
1.1, 1.0, 1.1,
1.2, 1.1, 1.0
),
ncol = 3,
byrow = TRUE
)
ref_big <- as.big.matrix(ref_dense)
index_path <- file.path(artifact_dir, "ref.ann")
metadata_path <- paste0(index_path, ".meta")
index <- annoy_build_bigmatrix(
ref_big,
path = index_path,
n_trees = 25L,
metric = "euclidean",
seed = 123L,
load_mode = "lazy"
)
index
annoy_is_loaded(index)
file.exists(index$path)
file.exists(index$metadata_path)
metadata <- read.dcf(index$metadata_path)
metadata[, c(
"index_id",
"metric",
"n_dim",
"n_ref",
"n_trees",
"build_seed",
"build_backend",
"file_size",
"file_md5"
)]
annoy_is_loaded(index)
first_result <- annoy_search_bigmatrix(index, k = 2L, search_k = 100L)
annoy_is_loaded(index)
first_result$index
round(first_result$distance, 3)
second_result <- annoy_search_bigmatrix(index, k = 2L, search_k = 100L)
identical(first_result$index, second_result$index)
all.equal(first_result$distance, second_result$distance)
annoy_close_index(index)
annoy_is_loaded(index)
validation_no_load <- annoy_validate_index(
index,
strict = TRUE,
load = FALSE
)
validation_no_load$valid
validation_no_load$checks[, c("check", "passed", "severity")]
annoy_is_loaded(index)
validation_with_load <- annoy_validate_index(
index,
strict = TRUE,
load = TRUE
)
validation_with_load$valid
tail(validation_with_load$checks[, c("check", "passed", "severity")], 2L)
annoy_is_loaded(index)
annoy_close_index(index)
annoy_is_loaded(index)
reload_result <- annoy_search_bigmatrix(index, k = 2L, search_k = 100L)
annoy_is_loaded(index)
reload_result$index
reopened_lazy <- annoy_open_index(
path = index$path,
load_mode = "lazy"
)
reopened_eager <- annoy_load_bigmatrix(
path = index$path,
load_mode = "eager"
)
annoy_is_loaded(reopened_lazy)
annoy_is_loaded(reopened_eager)
reopened_result <- annoy_search_bigmatrix(
reopened_lazy,
k = 2L,
search_k = 100L
)
annoy_is_loaded(reopened_lazy)
reopened_result$index
annoy_close_index(reopened_lazy)
c(
original = annoy_is_loaded(index),
reopened_lazy = annoy_is_loaded(reopened_lazy),
reopened_eager = annoy_is_loaded(reopened_eager)
)
report <- annoy_validate_index(
reopened_eager,
strict = FALSE,
load = FALSE
)
report$valid
report$checks[, c("check", "passed", "severity")]
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.