pub struct SearchIndexBTreeRange<P, V> { /* private fields */ }
Expand description
SearchIndexBTreeRange is a index backed by a BTreeMap that can match Exact, InRange, OutRange, Minimum and Maximum queries.
§Example
use attribute_search_engine::{SearchIndex, SearchIndexBTreeRange};
use std::collections::HashSet;
use attribute_search_engine::Query;
let mut index_age = SearchIndexBTreeRange::<usize, i32>::new();
index_age.insert(0, 17);
index_age.insert(1, 42);
index_age.insert(2, 31);
index_age.insert(3, 26);
let result = index_age.search(&Query::Exact("<unused>".into(), "42".into()));
assert_eq!(result, Ok(HashSet::from_iter(vec![1])));
let result = index_age.search(&Query::InRange("<unused>".into(), "20".into(), "40".into()));
assert_eq!(result, Ok(HashSet::from_iter(vec![2, 3])));
Implementations§
Source§impl<P, V> SearchIndexBTreeRange<P, V>
impl<P, V> SearchIndexBTreeRange<P, V>
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new SearchIndexBTreeRange
.
§Example
use attribute_search_engine::SearchIndexBTreeRange;
let index = SearchIndexBTreeRange::<usize, i32>::new();
Sourcepub fn insert(&mut self, primary_id: P, attribute_value: V)
pub fn insert(&mut self, primary_id: P, attribute_value: V)
Insert a new entry in the index.
§Example
use attribute_search_engine::SearchIndexBTreeRange;
let mut index = SearchIndexBTreeRange::<usize, i32>::new();
// You insert an entry by giving a row / primary id and an attribute value:
index.insert(123, 42);
// The same row / primary id can have multiple attributes assigned:
index.insert(123, 69);
// Add as much entries as you want for as many rows you want:
index.insert(124, 32);
Trait Implementations§
Source§impl<P, V> Default for SearchIndexBTreeRange<P, V>
impl<P, V> Default for SearchIndexBTreeRange<P, V>
Source§impl<P, V> SearchIndex<P> for SearchIndexBTreeRange<P, V>
impl<P, V> SearchIndex<P> for SearchIndexBTreeRange<P, V>
Auto Trait Implementations§
impl<P, V> Freeze for SearchIndexBTreeRange<P, V>
impl<P, V> RefUnwindSafe for SearchIndexBTreeRange<P, V>where
V: RefUnwindSafe,
P: RefUnwindSafe,
impl<P, V> Send for SearchIndexBTreeRange<P, V>
impl<P, V> Sync for SearchIndexBTreeRange<P, V>
impl<P, V> Unpin for SearchIndexBTreeRange<P, V>
impl<P, V> UnwindSafe for SearchIndexBTreeRange<P, V>where
V: RefUnwindSafe,
P: RefUnwindSafe,
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