pub struct QueryCache { /* private fields */ }Expand description
Query cache using DashMap and atomic operations
Implementations§
Source§impl QueryCache
impl QueryCache
Sourcepub fn new(config: QueryCacheConfig) -> Self
pub fn new(config: QueryCacheConfig) -> Self
Create a new query cache
Sourcepub fn search(
&self,
query_text: &str,
query_vector: &[f32],
params_hash: u64,
) -> Option<Vec<SemanticSearchResult>>
pub fn search( &self, query_text: &str, query_vector: &[f32], params_hash: u64, ) -> Option<Vec<SemanticSearchResult>>
Search for cached results for a query
Sourcepub fn cache_results(
&self,
query_text: String,
query_vector: Vec<f32>,
results: Vec<SemanticSearchResult>,
params_hash: u64,
session_id: Option<Uuid>,
) -> Result<()>
pub fn cache_results( &self, query_text: String, query_vector: Vec<f32>, results: Vec<SemanticSearchResult>, params_hash: u64, session_id: Option<Uuid>, ) -> Result<()>
Cache query results
Sourcepub fn get_stats(&self) -> QueryCacheStatsSnapshot
pub fn get_stats(&self) -> QueryCacheStatsSnapshot
Get cache statistics snapshot
Sourcepub fn invalidate_session(&self, session_id: Uuid) -> Result<()>
pub fn invalidate_session(&self, session_id: Uuid) -> Result<()>
Invalidate all cache entries for a specific session More efficient than clearing the entire cache when only one session changed
Sourcepub fn get_efficiency_metrics(&self) -> HashMap<String, f32>
pub fn get_efficiency_metrics(&self) -> HashMap<String, f32>
Get cache efficiency metrics
Trait Implementations§
Auto Trait Implementations§
impl Freeze for QueryCache
impl !RefUnwindSafe for QueryCache
impl Send for QueryCache
impl Sync for QueryCache
impl Unpin for QueryCache
impl UnsafeUnpin for QueryCache
impl !UnwindSafe for QueryCache
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request