Struct summa_server::services::Index
source · pub struct Index { /* private fields */ }Expand description
services::Index is responsible for indices lifecycle. Here lives indices creation and deletion as well as committing and indexing new documents.
Implementations§
source§impl Index
impl Index
The main entry point for managing Summa indices
pub fn index_registry(&self) -> &IndexRegistry
pub async fn get_index_holder( &self, index_alias: &str ) -> SummaServerResult<Handler<IndexHolder>>
sourcepub fn consumer_manager(&self) -> &Arc<RwLock<ConsumerManager>>
pub fn consumer_manager(&self) -> &Arc<RwLock<ConsumerManager>>
Returns ConsumerManager
sourcepub fn server_config(&self) -> &Arc<dyn ConfigProxy<Config>>
pub fn server_config(&self) -> &Arc<dyn ConfigProxy<Config>>
Returns server config
sourcepub fn new(
server_config_holder: &Arc<dyn ConfigProxy<Config>>
) -> SummaServerResult<Index>
pub fn new( server_config_holder: &Arc<dyn ConfigProxy<Config>> ) -> SummaServerResult<Index>
Creates new IndexService with ConfigHolder
sourcepub async fn attach_index(
&self,
attach_index_request: AttachIndexRequest
) -> SummaServerResult<Handler<IndexHolder>>
pub async fn attach_index( &self, attach_index_request: AttachIndexRequest ) -> SummaServerResult<Handler<IndexHolder>>
Create consumer and insert it into the consumer registry. Add it to the IndexHolder afterwards.
pub async fn copy_documents( &self, copy_documents_request: CopyDocumentsRequest ) -> SummaServerResult<u32>
sourcepub async fn create_index(
&self,
create_index_request: CreateIndexRequest
) -> SummaServerResult<Handler<IndexHolder>>
pub async fn create_index( &self, create_index_request: CreateIndexRequest ) -> SummaServerResult<Handler<IndexHolder>>
Create consumer and insert it into the consumer registry. Add it to the IndexHolder afterwards.
sourcepub async fn delete_index(
&self,
delete_index_request: DeleteIndexRequest
) -> SummaServerResult<DeleteIndexResult>
pub async fn delete_index( &self, delete_index_request: DeleteIndexRequest ) -> SummaServerResult<DeleteIndexResult>
Delete index, optionally with all its aliases and consumers
sourcepub async fn get_consumers(&self) -> HashMap<String, Config>
pub async fn get_consumers(&self) -> HashMap<String, Config>
Returns all existent consumers for all indices
sourcepub async fn create_consumer(
&self,
create_consumer_request: CreateConsumerRequest
) -> SummaServerResult<String>
pub async fn create_consumer( &self, create_consumer_request: CreateConsumerRequest ) -> SummaServerResult<String>
Create consumer and insert it into the consumer registry. Add it to the IndexHolder afterwards.
sourcepub async fn delete_consumer(
&self,
delete_consumer_request: DeleteConsumerRequest
) -> SummaServerResult<DeleteConsumerResponse>
pub async fn delete_consumer( &self, delete_consumer_request: DeleteConsumerRequest ) -> SummaServerResult<DeleteConsumerResponse>
Delete consumer from the consumer registry and from IndexHolder afterwards.
sourcepub async fn stop(&mut self, force: bool) -> SummaServerResult<()>
pub async fn stop(&mut self, force: bool) -> SummaServerResult<()>
Stopping index holders
sourcepub async fn commit_and_restart_consumption(
&self,
index_holder: &Handler<IndexHolder>,
with_hotcache: bool
) -> SummaServerResult<()>
pub async fn commit_and_restart_consumption( &self, index_holder: &Handler<IndexHolder>, with_hotcache: bool ) -> SummaServerResult<()>
Commits all and restarts consuming threads
sourcepub async fn try_commit_and_restart_consumption(
&self,
index_holder: &Handler<IndexHolder>
) -> SummaServerResult<()>
pub async fn try_commit_and_restart_consumption( &self, index_holder: &Handler<IndexHolder> ) -> SummaServerResult<()>
Commits everything and restarts consuming threads
sourcepub async fn commit(
&self,
index_holder: &Handler<IndexHolder>,
with_hotcache: bool
) -> SummaServerResult<Option<PreparedConsumption>>
pub async fn commit( &self, index_holder: &Handler<IndexHolder>, with_hotcache: bool ) -> SummaServerResult<Option<PreparedConsumption>>
Commits all without restarting consuming threads
sourcepub async fn rollback(
&self,
index_holder: &Handler<IndexHolder>
) -> SummaServerResult<Option<PreparedConsumption>>
pub async fn rollback( &self, index_holder: &Handler<IndexHolder> ) -> SummaServerResult<Option<PreparedConsumption>>
Rollbacks everything without restarting consuming threads
sourcepub async fn try_commit(
&self,
index_holder: &Handler<IndexHolder>
) -> SummaServerResult<Option<PreparedConsumption>>
pub async fn try_commit( &self, index_holder: &Handler<IndexHolder> ) -> SummaServerResult<Option<PreparedConsumption>>
Commits immediately or returns all without restarting consuming threads
sourcepub async fn start_threads(&mut self)
pub async fn start_threads(&mut self)
Starts autocommitting thread
sourcepub async fn stop_threads(&mut self) -> SummaServerResult<()>
pub async fn stop_threads(&mut self) -> SummaServerResult<()>
Stops autocommitting thread
sourcepub async fn open_index_from_config(
&self,
index_engine_config: IndexEngineConfig
) -> SummaServerResult<Index>
pub async fn open_index_from_config( &self, index_engine_config: IndexEngineConfig ) -> SummaServerResult<Index>
Opens index and sets it up via setup
sourcepub async fn copy_index(
&self,
copy_index_request: CopyIndexRequest
) -> SummaServerResult<Handler<IndexHolder>>
pub async fn copy_index( &self, copy_index_request: CopyIndexRequest ) -> SummaServerResult<Handler<IndexHolder>>
Copies index with changing engine
sourcepub async fn search(
&self,
search_request: SearchRequest
) -> SummaServerResult<Vec<CollectorOutput>>
pub async fn search( &self, search_request: SearchRequest ) -> SummaServerResult<Vec<CollectorOutput>>
Search documents
sourcepub async fn constrained_search(
&self,
search_request: SearchRequest
) -> SummaServerResult<Vec<CollectorOutput>>
pub async fn constrained_search( &self, search_request: SearchRequest ) -> SummaServerResult<Vec<CollectorOutput>>
Search documents
sourcepub async fn merge_segments(
&self,
merge_segments_request: MergeSegmentsRequest
) -> SummaServerResult<Option<SegmentId>>
pub async fn merge_segments( &self, merge_segments_request: MergeSegmentsRequest ) -> SummaServerResult<Option<SegmentId>>
Merge several segments into a single one
sourcepub async fn vacuum_index(
&self,
vacuum_index_request: VacuumIndexRequest
) -> SummaServerResult<u64>
pub async fn vacuum_index( &self, vacuum_index_request: VacuumIndexRequest ) -> SummaServerResult<u64>
Merges segments and removes tombstones
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Index
impl Send for Index
impl Sync for Index
impl Unpin for Index
impl !UnwindSafe for Index
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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> 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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request