Nothing
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
options(bigANNOY.progress = FALSE)
set.seed(20260326)
library(bigANNOY)
library(bigmemory)
ref_dense <- matrix(
c(
0.0, 0.1, 0.2, 0.3,
0.1, 0.0, 0.1, 0.2,
0.2, 0.1, 0.0, 0.1,
1.0, 1.1, 1.2, 1.3,
1.1, 1.0, 1.1, 1.2,
1.2, 1.1, 1.0, 1.1,
3.0, 3.1, 3.2, 3.3,
3.1, 3.0, 3.1, 3.2
),
ncol = 4,
byrow = TRUE
)
ref_big <- as.big.matrix(ref_dense)
dim(ref_big)
index_path <- tempfile(fileext = ".ann")
index <- annoy_build_bigmatrix(
ref_big,
path = index_path,
n_trees = 20L,
metric = "euclidean",
seed = 123L,
load_mode = "lazy"
)
index
annoy_is_loaded(index)
self_result <- annoy_search_bigmatrix(
index,
k = 2L,
search_k = 100L
)
self_result$index
round(self_result$distance, 3)
annoy_is_loaded(index)
str(self_result, max.level = 1)
query_dense <- matrix(
c(
0.05, 0.05, 0.15, 0.25,
1.05, 1.05, 1.10, 1.25,
3.05, 3.05, 3.15, 3.25
),
ncol = 4,
byrow = TRUE
)
query_result <- annoy_search_bigmatrix(
index,
query = query_dense,
k = 3L,
search_k = 100L
)
query_result$index
round(query_result$distance, 3)
index_out <- big.matrix(nrow(query_dense), 2L, type = "integer")
distance_out <- big.matrix(nrow(query_dense), 2L, type = "double")
streamed <- annoy_search_bigmatrix(
index,
query = query_dense,
k = 2L,
xpIndex = index_out,
xpDistance = distance_out
)
bigmemory::as.matrix(index_out)
round(bigmemory::as.matrix(distance_out), 3)
annoy_close_index(index)
annoy_is_loaded(index)
reopened <- annoy_open_index(index$path, load_mode = "eager")
annoy_is_loaded(reopened)
validation <- annoy_validate_index(reopened, strict = TRUE, load = TRUE)
validation$valid
validation$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.