From 8df215d6c392b70086a5a5cfd4f61237ac8d22f3 Mon Sep 17 00:00:00 2001 From: Per Stark Date: Thu, 21 Nov 2024 12:03:40 +0100 Subject: [PATCH] helper functions --- src/surrealdb/mod.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/surrealdb/mod.rs b/src/surrealdb/mod.rs index 21ef2ff..3fd60bc 100644 --- a/src/surrealdb/mod.rs +++ b/src/surrealdb/mod.rs @@ -5,6 +5,8 @@ use surrealdb::{ Error, Surreal, }; +use crate::storage::types::StoredObject; + #[derive(Clone)] pub struct SurrealDbClient { pub client: Surreal, @@ -32,6 +34,24 @@ impl SurrealDbClient { Ok(SurrealDbClient { client: db }) } + + pub async fn rebuild_indexes(&self) -> Result<(), Error> { + self.client + .query("REBUILD INDEX IF EXISTS idx_embedding ON text_chunk") + .await?; + self.client + .query("REBUILD INDEX IF EXISTS embeddings ON knowledge_entity") + .await?; + Ok(()) + } + + pub async fn drop_table(&self) -> Result<(), Error> + where + T: StoredObject + Send + Sync + 'static, + { + let _deleted: Vec = self.client.delete(T::table_name()).await?; + Ok(()) + } } impl Deref for SurrealDbClient {