Struct elasticsearch_dsl::search::queries::compound::DisMaxQuery
source · pub struct DisMaxQuery { /* private fields */ }
Expand description
Returns documents matching one or more wrapped queries, called query clauses or clauses.
If a returned document matches multiple query clauses, the dis_max
query assigns the document
the highest relevance score from any matching clause, plus a tie breaking increment for any
additional matching subqueries.
You can use the dis_max
to search for a term in fields mapped with different
boost
factors.
To create disjunction max query:
Query::dis_max()
.query(Query::r#match("t1", "text"))
.query(Query::r#match("t2", "text"))
.tie_breaker(0.5)
.boost(3)
.name("test");
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-dis-max-query.html
Implementations§
source§impl DisMaxQuery
impl DisMaxQuery
pub fn serialize<__S>(
__self: &DisMaxQuery,
__serializer: __S
) -> Result<__S::Ok, __S::Error>where
__S: Serializer,
source§impl DisMaxQuery
impl DisMaxQuery
sourcepub fn query<T>(self, query: T) -> Self
pub fn query<T>(self, query: T) -> Self
Contains one or more query clauses. Returned documents must match one or more of these queries. If a document matches multiple queries, Elasticsearch uses the highest relevance score
sourcepub fn tie_breaker(self, tie_breaker: f32) -> Self
pub fn tie_breaker(self, tie_breaker: f32) -> Self
Floating point number between 0
and 1.0
used to increase the
relevance scores
of documents matching multiple query clauses. Defaults to 0.0
.
You can use the tie_breaker
value to assign higher relevance scores to
documents that contain the same term in multiple fields than documents that
contain this term in only the best of those multiple fields, without
confusing this with the better case of two different terms in the multiple
fields.
If a document matches multiple clauses, the dis_max
query calculates
the relevance score for the document as follows:
- Take the relevance score from a matching clause with the highest score.
- Multiply the score from any other matching clauses by the tie_breaker value.
- Add the highest score to the multiplied scores.
If the tie_breaker
value is greater than 0.0
, all matching clauses
count, but the clause with the highest score counts most.
sourcepub fn boost<T>(self, boost: T) -> Selfwhere
T: AsPrimitive<f32>,
pub fn boost<T>(self, boost: T) -> Selfwhere
T: AsPrimitive<f32>,
Floating point number used to decrease or increase the
relevance scores
of a query. Defaults to 1.0
.
You can use the boost parameter to adjust relevance scores for searches containing two or more queries.
Boost values are relative to the default value of 1.0
.
A boost value between 0 and 1.0
decreases the relevance score.
A value greater than 1.0
increases the relevance score.
Trait Implementations§
source§impl Clone for DisMaxQuery
impl Clone for DisMaxQuery
source§fn clone(&self) -> DisMaxQuery
fn clone(&self) -> DisMaxQuery
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for DisMaxQuery
impl Debug for DisMaxQuery
source§impl Default for DisMaxQuery
impl Default for DisMaxQuery
source§fn default() -> DisMaxQuery
fn default() -> DisMaxQuery
source§impl From<DisMaxQuery> for Option<Query>
impl From<DisMaxQuery> for Option<Query>
source§fn from(q: DisMaxQuery) -> Self
fn from(q: DisMaxQuery) -> Self
source§impl From<DisMaxQuery> for Query
impl From<DisMaxQuery> for Query
source§fn from(q: DisMaxQuery) -> Self
fn from(q: DisMaxQuery) -> Self
source§impl IntoIterator for DisMaxQuery
impl IntoIterator for DisMaxQuery
§type Item = DisMaxQuery
type Item = DisMaxQuery
§type IntoIter = IntoIter<<DisMaxQuery as IntoIterator>::Item>
type IntoIter = IntoIter<<DisMaxQuery as IntoIterator>::Item>
source§impl PartialEq<DisMaxQuery> for Query
impl PartialEq<DisMaxQuery> for Query
source§fn eq(&self, other: &DisMaxQuery) -> bool
fn eq(&self, other: &DisMaxQuery) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialEq<Query> for DisMaxQuery
impl PartialEq<Query> for DisMaxQuery
source§impl PartialEq for DisMaxQuery
impl PartialEq for DisMaxQuery
source§fn eq(&self, other: &DisMaxQuery) -> bool
fn eq(&self, other: &DisMaxQuery) -> bool
self
and other
values to be equal, and is used
by ==
.