Nothing
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
options(bigANNOY.progress = FALSE)
set.seed(20260326)
library(bigANNOY)
library(bigmemory)
share_dir <- tempfile("bigannoy-share-")
dir.create(share_dir, recursive = TRUE, showWarnings = FALSE)
ref_dense <- matrix(
c(
0.0, 0.0,
1.0, 0.0,
0.0, 1.0,
1.0, 1.0
),
ncol = 2,
byrow = TRUE
)
ref_big <- as.big.matrix(ref_dense)
index_path <- file.path(share_dir, "ref.ann")
index <- annoy_build_bigmatrix(
ref_big,
path = index_path,
n_trees = 20L,
metric = "euclidean",
seed = 77L,
load_mode = "lazy"
)
index
metadata <- read.dcf(index$metadata_path)
metadata[, c(
"metadata_version",
"package_version",
"annoy_version",
"index_id",
"metric",
"n_dim",
"n_ref",
"n_trees",
"build_seed",
"build_threads",
"build_backend",
"file_size",
"file_mtime",
"file_md5",
"load_mode",
"index_file"
)]
validation <- annoy_validate_index(
index,
strict = TRUE,
load = TRUE
)
validation$valid
validation$checks[, c("check", "passed", "severity")]
reopened <- annoy_open_index(
path = index$path,
load_mode = "lazy"
)
annoy_is_loaded(reopened)
annoy_validate_index(reopened, strict = TRUE, load = TRUE)$valid
annoy_is_loaded(reopened)
shared_dir <- tempfile("bigannoy-shared-copy-")
dir.create(shared_dir, recursive = TRUE, showWarnings = FALSE)
shared_index_path <- file.path(shared_dir, basename(index$path))
shared_metadata_path <- file.path(shared_dir, basename(index$metadata_path))
file.copy(index$path, shared_index_path, overwrite = TRUE)
file.copy(index$metadata_path, shared_metadata_path, overwrite = TRUE)
shared <- annoy_open_index(
path = shared_index_path,
load_mode = "lazy"
)
shared_report <- annoy_validate_index(
shared,
strict = TRUE,
load = TRUE
)
shared_report$valid
bad_metadata <- read.dcf(shared_metadata_path)
bad_metadata[1L, "file_md5"] <- "corrupted"
write.dcf(as.data.frame(bad_metadata, stringsAsFactors = FALSE), file = shared_metadata_path)
shared_bad <- annoy_open_index(shared_index_path, load_mode = "lazy")
bad_report <- annoy_validate_index(
shared_bad,
strict = FALSE,
load = FALSE
)
bad_report$valid
bad_report$checks[, c("check", "passed", "severity")]
strict_error <- tryCatch(
{
annoy_validate_index(shared_bad, strict = TRUE, load = FALSE)
NULL
},
error = function(e) conditionMessage(e)
)
strict_error
renamed_path <- file.path(shared_dir, "renamed.ann")
file.copy(shared_index_path, renamed_path, overwrite = TRUE)
rename_error <- tryCatch(
{
annoy_open_index(renamed_path, metadata_path = shared_metadata_path)
NULL
},
error = function(e) conditionMessage(e)
)
rename_error
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.