#[non_exhaustive]pub struct MatchPage {
pub hits: Vec<(Vec<u8>, f64, Vec<(Vec<u8>, Vec<(u32, u32)>)>)>,
pub facets: Vec<FacetCounts>,
}Expand description
A faceted query’s answer: the page, and per requested FACET field
its (value, count) buckets over the whole match set.
use kevy_embedded::{Config, MatchOpts, 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"rust engine")])?;
let page = s.idx_match_faceted(b"ft", b"rust", 10, MatchOpts::default())?;
assert_eq!(page.hits.len(), 1);Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.hits: Vec<(Vec<u8>, f64, Vec<(Vec<u8>, Vec<(u32, u32)>)>)>The ranked page — exactly what Store::idx_match_with returns.
s.hset(b"d:1", &[(b"body", b"rust engine")])?;
s.hset(b"d:2", &[(b"body", b"go server")])?;
let page = s.idx_match_faceted(b"ft", b"rust", 10, MatchOpts::default())?;
assert_eq!(page.hits.iter().map(|h| &h.0[..]).collect::<Vec<_>>(), [&b"d:1"[..]]);facets: Vec<FacetCounts>One entry per requested facet field, most frequent first.
s.hset(b"d:1", &[(b"body", b"rust"), (b"lang", b"en")])?;
let (none, lang) = (MatchOpts::default(), [b"lang".to_vec()]);
assert!(s.idx_match_faceted(b"ft", b"rust", 10, none)?.facets.is_empty());
let page = s.idx_match_faceted(b"ft", b"rust", 10, none.with_facets(&lang))?;
assert_eq!(page.facets, [vec![(b"en".to_vec(), 1)]]);Trait Implementations§
impl StructuralPartialEq for MatchPage
Auto Trait Implementations§
impl Freeze for MatchPage
impl RefUnwindSafe for MatchPage
impl Send for MatchPage
impl Sync for MatchPage
impl Unpin for MatchPage
impl UnsafeUnpin for MatchPage
impl UnwindSafe for MatchPage
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