#[non_exhaustive]pub enum TokenPositions {
Omit,
Record,
}Expand description
Whether a text index records each token’s position
(crate::Store::idx_create_text).
Positions let a phrase query verify that its words are adjacent; they cost the positional side-channel’s memory.
assert_eq!(kevy_embedded::TokenPositions::default(), kevy_embedded::TokenPositions::Omit);Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Omit
Index terms only. Term queries work as usual; a multi-word phrase query has no offsets to verify adjacency against and matches nothing.
use kevy_embedded::{Config, Store, TokenPositions};
let s = Store::open(Config::default())?;
s.idx_create_text(b"ft", b"doc:", &[(b"body", 1.0)], TokenPositions::Omit, &[])?;
s.hset(b"doc:1", &[(b"body", b"an engine written in rust")])?;
assert_eq!(s.idx_match(b"ft", b"rust engine", 10)?.len(), 1);
// no offsets were recorded, so no phrase can be verified
assert!(s.idx_match(b"ft", b"\"written in rust\"", 10)?.is_empty());Record
Record token offsets, so phrase queries verify adjacency.
use kevy_embedded::{Config, Store, TokenPositions};
let s = Store::open(Config::default())?;
s.idx_create_text(b"ft", b"doc:", &[(b"body", 1.0)], TokenPositions::Record, &[])?;
s.hset(b"doc:1", &[(b"body", b"an engine written in rust")])?;
assert!(s.idx_match(b"ft", b"\"rust engine\"", 10)?.is_empty(), "not adjacent");
assert_eq!(s.idx_match(b"ft", b"\"written in rust\"", 10)?.len(), 1);Trait Implementations§
Source§impl Clone for TokenPositions
impl Clone for TokenPositions
impl Copy for TokenPositions
Source§impl Debug for TokenPositions
impl Debug for TokenPositions
Source§impl Default for TokenPositions
impl Default for TokenPositions
impl Eq for TokenPositions
Source§impl Hash for TokenPositions
impl Hash for TokenPositions
Source§impl PartialEq for TokenPositions
impl PartialEq for TokenPositions
impl StructuralPartialEq for TokenPositions
Auto Trait Implementations§
impl Freeze for TokenPositions
impl RefUnwindSafe for TokenPositions
impl Send for TokenPositions
impl Sync for TokenPositions
impl Unpin for TokenPositions
impl UnsafeUnpin for TokenPositions
impl UnwindSafe for TokenPositions
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