[−][src]Struct ejdb::Index
A builder for an operation on an index of a certain field of an EJDB collection.
In EJDB every collection can have an index on the fields of its records. Indices can be of one of three types:
- string (possibly case insensitive);
- number;
- array.
Indices can be set, dropped, optimized or rebuilt. Indices are stored in a separate file from their collections and can speed up certain access patterns in queries. Naturally, indices are specified for some field in collection records, so this structure is used to configure indices for one specific field.
Index manipulation is done with this structure which provides a builder-like interface
to create, change properties or drop an index on one field. Since an index can't exist
separately from a collection, this structure is linked via a lifetime to its corresponding
collection object. An instance of this structure is obtained with Collection::index()
method.
Example
let db = Database::open("/path/to/db").unwrap(); let coll = db.collection("some_collection").unwrap(); // create a string index on `name` field coll.index("name").string(true).set().unwrap(); // create multiple indices on `coords` field coll.index("coords").number().array().set().unwrap();
Methods
impl<'coll, 'db: 'coll> Index<'coll, 'db>
[src]
pub fn string(self, case_sensitive: bool) -> Self
[src]
Specifies that this index must be built over string values of this field.
case_sensitive
argument determines whether this index must take string case into account,
true
for case sensitive matching, false
for the opposite.
pub fn number(self) -> Self
[src]
Specifies that this index must be built over numeric values of this field.
pub fn array(self) -> Self
[src]
Specifies that this index must be built over array values of this field.
pub fn set(self) -> Result<()>
[src]
Creates one or more indices of specified types on this field.
Panics if no types were specified before calling this method.
pub fn drop_all(self) -> Result<()>
[src]
Drops all indices on this field.
pub fn drop(self) -> Result<()>
[src]
Drops indices of the previously specified types on this field.
Panics if no type has been set prior to calling this method.
pub fn rebuild(self) -> Result<()>
[src]
Rebuilds indices of the previously specified types on this field from scratch.
Panics if no type has been set prior to calling this method.
pub fn optimize(self) -> Result<()>
[src]
Optimizes indices of the previously specified types on this field.
Panics if no type has been set prior to calling this method.
Auto Trait Implementations
Blanket Implementations
impl<T> From for T
[src]
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom for T where
T: From<U>,
[src]
T: From<U>,
type Error = !
try_from
)The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
try_from
)The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
fn get_type_id(&self) -> TypeId
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,