use selene_core::{CancellationChecker, DbString, VectorMetric, VectorValue};
use super::{
ApproximateVectorExpansionOptions, ApproximateVectorSearchOptions, VectorCandidateSet,
VectorNodeSearchHit, VectorSearchError,
};
use crate::error::GraphResult;
use crate::shared::SharedGraph;
impl SharedGraph {
pub fn exact_vector_search_nodes(
&self,
label: &DbString,
property: &DbString,
query: &VectorValue,
metric: VectorMetric,
k: usize,
) -> GraphResult<Vec<VectorNodeSearchHit>> {
self.read()
.exact_vector_search_nodes(label, property, query, metric, k)
}
pub fn exact_vector_search_nodes_checked(
&self,
label: &DbString,
property: &DbString,
query: &VectorValue,
metric: VectorMetric,
k: usize,
checker: CancellationChecker<'_>,
) -> Result<Vec<VectorNodeSearchHit>, VectorSearchError> {
self.read()
.exact_vector_search_nodes_checked(label, property, query, metric, k, checker)
}
pub fn exact_vector_search_nodes_batch_checked(
&self,
label: &DbString,
property: &DbString,
queries: &[VectorValue],
metric: VectorMetric,
k: usize,
checker: CancellationChecker<'_>,
) -> Result<Vec<Vec<VectorNodeSearchHit>>, VectorSearchError> {
self.read()
.exact_vector_search_nodes_batch_checked(label, property, queries, metric, k, checker)
}
pub fn approximate_vector_search_nodes_checked(
&self,
label: &DbString,
property: &DbString,
query: &VectorValue,
options: ApproximateVectorSearchOptions,
checker: CancellationChecker<'_>,
) -> Result<Vec<VectorNodeSearchHit>, VectorSearchError> {
self.read()
.approximate_vector_search_nodes_checked(label, property, query, options, checker)
}
pub fn approximate_vector_search_nodes_batch_checked(
&self,
label: &DbString,
property: &DbString,
queries: &[VectorValue],
options: ApproximateVectorSearchOptions,
checker: CancellationChecker<'_>,
) -> Result<Vec<Vec<VectorNodeSearchHit>>, VectorSearchError> {
self.read().approximate_vector_search_nodes_batch_checked(
label, property, queries, options, checker,
)
}
pub fn approximate_vector_search_candidate_set_checked(
&self,
label: &DbString,
property: &DbString,
query: &VectorValue,
candidates: &VectorCandidateSet,
options: ApproximateVectorSearchOptions,
checker: CancellationChecker<'_>,
) -> Result<Vec<VectorNodeSearchHit>, VectorSearchError> {
self.read().approximate_vector_search_candidate_set_checked(
label, property, query, candidates, options, checker,
)
}
pub fn approximate_vector_search_candidate_sets_batch_checked(
&self,
label: &DbString,
property: &DbString,
queries: &[VectorValue],
candidate_sets: &[VectorCandidateSet],
options: ApproximateVectorSearchOptions,
checker: CancellationChecker<'_>,
) -> Result<Vec<Vec<VectorNodeSearchHit>>, VectorSearchError> {
self.read()
.approximate_vector_search_candidate_sets_batch_checked(
label,
property,
queries,
candidate_sets,
options,
checker,
)
}
pub fn approximate_vector_search_expanded_candidates_checked(
&self,
label: &DbString,
property: &DbString,
query: &VectorValue,
options: ApproximateVectorExpansionOptions<'_>,
checker: CancellationChecker<'_>,
) -> Result<Vec<VectorNodeSearchHit>, VectorSearchError> {
self.read()
.approximate_vector_search_expanded_candidates_checked(
label, property, query, options, checker,
)
}
pub fn approximate_vector_search_expanded_candidates_batch_checked(
&self,
label: &DbString,
property: &DbString,
queries: &[VectorValue],
options: ApproximateVectorExpansionOptions<'_>,
checker: CancellationChecker<'_>,
) -> Result<Vec<Vec<VectorNodeSearchHit>>, VectorSearchError> {
self.read()
.approximate_vector_search_expanded_candidates_batch_checked(
label, property, queries, options, checker,
)
}
}