pub struct SimpleSearchIndex {
pub version: u32,
pub documents: Vec<SimpleDocument>,
pub index: HashMap<String, Vec<usize>>,
}Expand description
A simple JSON-based search index.
Fields§
§version: u32Index format version.
documents: Vec<SimpleDocument>All indexed documents.
index: HashMap<String, Vec<usize>>Inverted index: term -> document indices.
Implementations§
Source§impl SimpleSearchIndex
impl SimpleSearchIndex
Sourcepub fn from_pages(pages: &[&Page]) -> Self
pub fn from_pages(pages: &[&Page]) -> Self
Build an index from a collection of pages.
Sourcepub fn search(&self, query: &str) -> Vec<&SimpleDocument>
pub fn search(&self, query: &str) -> Vec<&SimpleDocument>
Search the index for matching documents.
Returns documents matching all query terms (AND search).
Sourcepub fn to_json(&self) -> Result<String, SearchError>
pub fn to_json(&self) -> Result<String, SearchError>
Serialize the index to JSON.
Sourcepub fn to_json_pretty(&self) -> Result<String, SearchError>
pub fn to_json_pretty(&self) -> Result<String, SearchError>
Serialize the index to pretty-printed JSON.
Sourcepub fn from_json(json: &str) -> Result<Self, SearchError>
pub fn from_json(json: &str) -> Result<Self, SearchError>
Deserialize an index from JSON.
Sourcepub fn write_to_file(&self, path: &Path) -> Result<(), SearchError>
pub fn write_to_file(&self, path: &Path) -> Result<(), SearchError>
Write the index to a file.
Sourcepub fn estimated_size(&self) -> usize
pub fn estimated_size(&self) -> usize
Get the estimated size of the serialized index.
Sourcepub fn is_within_size_limit(&self) -> bool
pub fn is_within_size_limit(&self) -> bool
Check if the index is within the recommended size limit.
Trait Implementations§
Source§impl Clone for SimpleSearchIndex
impl Clone for SimpleSearchIndex
Source§fn clone(&self) -> SimpleSearchIndex
fn clone(&self) -> SimpleSearchIndex
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SimpleSearchIndex
impl Debug for SimpleSearchIndex
Source§impl Default for SimpleSearchIndex
impl Default for SimpleSearchIndex
Source§impl<'de> Deserialize<'de> for SimpleSearchIndex
impl<'de> Deserialize<'de> for SimpleSearchIndex
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for SimpleSearchIndex
impl RefUnwindSafe for SimpleSearchIndex
impl Send for SimpleSearchIndex
impl Sync for SimpleSearchIndex
impl Unpin for SimpleSearchIndex
impl UnwindSafe for SimpleSearchIndex
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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