Struct Rescore

Source
pub struct Rescore { /* private fields */ }
Expand description

Rescoring can help to improve precision by reordering just the top (eg 100 - 500) documents returned by the query and post_filter phases, using a secondary (usually more costly) algorithm, instead of applying the costly algorithm to all documents in the index.

A rescore request is executed on each shard before it returns its results to be sorted by the node handling the overall search request.

Currently the rescore API has only one implementation: the query rescorer, which uses a query to tweak the scoring. In the future, alternative rescorers may be made available, for example, a pair-wise rescorer.

To create a rescore query with simple term query:

Rescore::new(Query::term("title", "test"));

To create a rescore query with simple term query and optional fields:

Rescore::new(Query::term("title", "test"))
    .rescore_query_weight(0.2)
    .window_size(100);

https://www.elastic.co/guide/en/elasticsearch/reference/current/filter-search-results.html#rescore

Implementations§

Source§

impl Rescore

Source

pub fn new<T>(query: T) -> Self
where T: Into<Option<Query>>,

Creates a new instance of Rescore

  • query - Second query which will be execute on top-k results returned by original query.
Source

pub fn window_size(self, window_size: u64) -> Self

The number of docs which will be examined on each shard can be controlled by the window_size parameter, which defaults to 10.

Source

pub fn rescore_query_weight<T>(self, rescore_query_weight: T) -> Self
where T: AsPrimitive<f32>,

The relative importance of the rescore query can be controlled with the rescore_query_weight respectively. Both default to 1.

Source

pub fn query_weight<T>(self, query_weight: T) -> Self
where T: AsPrimitive<f32>,

The relative importance of the original query can be controlled with the query_weight respectively. Both default to 1.

Source

pub fn score_mode(self, score_mode: ScoreMode) -> Self

The way the scores are combined can be controlled with the

Trait Implementations§

Source§

impl Clone for Rescore

Source§

fn clone(&self) -> Rescore

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Rescore

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl IntoIterator for Rescore

Source§

type Item = Rescore

The type of the elements being iterated over.
Source§

type IntoIter = IntoIter<<Rescore as IntoIterator>::Item>

Which kind of iterator are we turning this into?
Source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
Source§

impl PartialEq for Rescore

Source§

fn eq(&self, other: &Rescore) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for Rescore

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for Rescore

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.