pub struct VectorDB { /* private fields */ }Expand description
High-performance vector database with HNSW indexing
Implementations§
Source§impl VectorDB
impl VectorDB
pub fn into_reference(val: VectorDB, env: Env) -> Result<Reference<VectorDB>>
pub fn into_instance(self, env: Env) -> Result<ClassInstance<VectorDB>>
Source§impl VectorDB
impl VectorDB
Sourcepub fn new(options: JsDbOptions) -> Result<Self>
pub fn new(options: JsDbOptions) -> Result<Self>
Create a new vector database with the given options
§Example
const db = new VectorDB({
dimensions: 384,
distanceMetric: 'Cosine',
storagePath: './vectors.db',
hnswConfig: {
m: 32,
efConstruction: 200,
efSearch: 100
}
});Sourcepub fn with_dimensions(dimensions: u32) -> Result<Self>
pub fn with_dimensions(dimensions: u32) -> Result<Self>
Sourcepub async fn insert(&self, entry: JsVectorEntry) -> Result<String>
pub async fn insert(&self, entry: JsVectorEntry) -> Result<String>
Insert a vector entry into the database
Returns the ID of the inserted vector (auto-generated if not provided)
§Example
const id = await db.insert({
vector: new Float32Array([1.0, 2.0, 3.0]),
metadata: { text: 'example' }
});Sourcepub async fn insert_batch(
&self,
entries: Vec<JsVectorEntry>,
) -> Result<Vec<String>>
pub async fn insert_batch( &self, entries: Vec<JsVectorEntry>, ) -> Result<Vec<String>>
Insert multiple vectors in a batch
Returns an array of IDs for the inserted vectors
§Example
const ids = await db.insertBatch([
{ vector: new Float32Array([1, 2, 3]) },
{ vector: new Float32Array([4, 5, 6]) }
]);Sourcepub async fn search(&self, query: JsSearchQuery) -> Result<Vec<JsSearchResult>>
pub async fn search(&self, query: JsSearchQuery) -> Result<Vec<JsSearchResult>>
Search for similar vectors
Returns an array of search results sorted by similarity
§Example
const results = await db.search({
vector: new Float32Array([1, 2, 3]),
k: 10,
filter: { category: 'example' }
});Sourcepub async fn delete(&self, id: String) -> Result<bool>
pub async fn delete(&self, id: String) -> Result<bool>
Delete a vector by ID
Returns true if the vector was deleted, false if not found
§Example
const deleted = await db.delete('vector-id');Sourcepub async fn get(&self, id: String) -> Result<Option<JsVectorEntry>>
pub async fn get(&self, id: String) -> Result<Option<JsVectorEntry>>
Get a vector by ID
Returns the vector entry if found, null otherwise
§Example
const entry = await db.get('vector-id');
if (entry) {
console.log('Found:', entry.metadata);
}Trait Implementations§
Source§impl FromNapiMutRef for VectorDB
impl FromNapiMutRef for VectorDB
Source§unsafe fn from_napi_mut_ref(
env: napi_env,
napi_val: napi_value,
) -> Result<&'static mut Self>
unsafe fn from_napi_mut_ref( env: napi_env, napi_val: napi_value, ) -> Result<&'static mut Self>
Safety Read more
Source§impl FromNapiRef for VectorDB
impl FromNapiRef for VectorDB
Source§unsafe fn from_napi_ref(
env: napi_env,
napi_val: napi_value,
) -> Result<&'static Self>
unsafe fn from_napi_ref( env: napi_env, napi_val: napi_value, ) -> Result<&'static Self>
Safety Read more
Source§impl FromNapiValue for &VectorDB
impl FromNapiValue for &VectorDB
Source§unsafe fn from_napi_value(env: napi_env, napi_val: napi_value) -> Result<Self>
unsafe fn from_napi_value(env: napi_env, napi_val: napi_value) -> Result<Self>
Safety Read more
fn from_unknown(value: JsUnknown) -> Result<Self, Error>
Source§impl FromNapiValue for &mut VectorDB
impl FromNapiValue for &mut VectorDB
Source§unsafe fn from_napi_value(env: napi_env, napi_val: napi_value) -> Result<Self>
unsafe fn from_napi_value(env: napi_env, napi_val: napi_value) -> Result<Self>
Safety Read more
fn from_unknown(value: JsUnknown) -> Result<Self, Error>
Source§impl ToNapiValue for VectorDB
impl ToNapiValue for VectorDB
Source§unsafe fn to_napi_value(env: napi_env, val: VectorDB) -> Result<napi_value>
unsafe fn to_napi_value(env: napi_env, val: VectorDB) -> Result<napi_value>
Safety Read more
Source§impl ValidateNapiValue for &VectorDB
impl ValidateNapiValue for &VectorDB
Source§unsafe fn validate(env: napi_env, napi_val: napi_value) -> Result<napi_value>
unsafe fn validate(env: napi_env, napi_val: napi_value) -> Result<napi_value>
Safety Read more
Source§impl ValidateNapiValue for &mut VectorDB
impl ValidateNapiValue for &mut VectorDB
Source§unsafe fn validate(env: napi_env, napi_val: napi_value) -> Result<napi_value>
unsafe fn validate(env: napi_env, napi_val: napi_value) -> Result<napi_value>
Safety Read more
Auto Trait Implementations§
impl Freeze for VectorDB
impl RefUnwindSafe for VectorDB
impl Send for VectorDB
impl Sync for VectorDB
impl Unpin for VectorDB
impl UnwindSafe for VectorDB
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more