pub struct SpatialResultMerger { /* private fields */ }Expand description
Merges spatial results from multiple shards.
For boolean predicates (ST_Contains, ST_Intersects): simple concatenation. For distance predicates (ST_DWithin): merge and sort by distance, take limit.
Implementations§
Source§impl SpatialResultMerger
impl SpatialResultMerger
pub fn new(expected_shards: usize) -> Self
Sourcepub fn add_shard_result(&mut self, result: &ShardSpatialResult)
pub fn add_shard_result(&mut self, result: &ShardSpatialResult)
Add a shard’s results.
Sourcepub fn all_responded(&self) -> bool
pub fn all_responded(&self) -> bool
Whether all expected shards have responded.
Sourcepub fn merge(&mut self, limit: usize, sort_by_distance: bool) -> Vec<SpatialHit>
pub fn merge(&mut self, limit: usize, sort_by_distance: bool) -> Vec<SpatialHit>
Merge all results: deduplicate by doc_id, optionally sort by distance.
For ST_DWithin, results are sorted by distance (nearest first).
For boolean predicates, order is arbitrary. Truncates to limit.
Sourcepub fn total_hits(&self) -> usize
pub fn total_hits(&self) -> usize
Total hits collected (before merge).
pub fn response_count(&self) -> usize
Auto Trait Implementations§
impl Freeze for SpatialResultMerger
impl RefUnwindSafe for SpatialResultMerger
impl Send for SpatialResultMerger
impl Sync for SpatialResultMerger
impl Unpin for SpatialResultMerger
impl UnsafeUnpin for SpatialResultMerger
impl UnwindSafe for SpatialResultMerger
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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> 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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.