Skip to main content

AsQuery

Trait AsQuery 

Source
pub trait AsQuery<S> {
    // Required method
    fn into_query(self) -> Option<Query<S>>;

    // Provided methods
    fn and(self, other: impl AsQuery<S>) -> Query<S>
       where Self: Sized { ... }
    fn or(self, other: impl AsQuery<S>) -> Query<S>
       where Self: Sized { ... }
    fn not(self) -> Query<S>
       where Self: Sized { ... }
    fn to_value(&self) -> Value
       where Self: Sized + Clone { ... }
}
Expand description

Anything that can become a query clause in scope S. A clause may be absent (into_query returns None) — that’s what makes an Option<Query<S>> a first-class optional filter.

The leaf-query builders (TermQuery, WildcardQuery, MatchQuery, …) implement this, so they drop straight into Search clauses and into and/or/not with no explicit .build(). The combinators here are provided methods; on a Query the inherent ones win, so a builder gains and/or/not/to_value for free while Query’s behavior is unchanged.

Required Methods§

Source

fn into_query(self) -> Option<Query<S>>

The clause this produces, or None to contribute nothing.

Provided Methods§

Source

fn and(self, other: impl AsQuery<S>) -> Query<S>
where Self: Sized,

self AND other. An absent side is the identity.

Source

fn or(self, other: impl AsQuery<S>) -> Query<S>
where Self: Sized,

self OR other. An absent side is the identity.

Source

fn not(self) -> Query<S>
where Self: Sized,

NOT self (negating an absent clause matches everything).

Source

fn to_value(&self) -> Value
where Self: Sized + Clone,

Render this clause to the OpenSearch query DSL. An absent clause renders as match_all. Handy for tests and debugging.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<S, T: AsQuery<S>> AsQuery<S> for Option<T>

Implementors§

Source§

impl<E> AsQuery<E> for NestedQuery<E>

Source§

impl<S> AsQuery<S> for BoostingQuery<S>

Source§

impl<S> AsQuery<S> for CombinedFieldsQuery<S>

Source§

impl<S> AsQuery<S> for ConstantScoreQuery<S>

Source§

impl<S> AsQuery<S> for DisMaxQuery<S>

Source§

impl<S> AsQuery<S> for DistanceFeatureQuery<S>

Source§

impl<S> AsQuery<S> for EqQuery<S>

Source§

impl<S> AsQuery<S> for FunctionScoreQuery<S>

Source§

impl<S> AsQuery<S> for FuzzyQuery<S>

Source§

impl<S> AsQuery<S> for GeoDistanceQuery<S>

Source§

impl<S> AsQuery<S> for IdsQuery<S>

Source§

impl<S> AsQuery<S> for MatchQuery<S>

Source§

impl<S> AsQuery<S> for MoreLikeThisQuery<S>

Source§

impl<S> AsQuery<S> for MultiMatchQuery<S>

Source§

impl<S> AsQuery<S> for PrefixQuery<S>

Source§

impl<S> AsQuery<S> for Query<S>

Source§

impl<S> AsQuery<S> for QueryStringQuery<S>

Source§

impl<S> AsQuery<S> for RangeQuery<S>

Source§

impl<S> AsQuery<S> for RankFeatureQuery<S>

Source§

impl<S> AsQuery<S> for RegexpQuery<S>

Source§

impl<S> AsQuery<S> for ScriptQuery<S>

Source§

impl<S> AsQuery<S> for ScriptScoreQuery<S>

Source§

impl<S> AsQuery<S> for SimpleQueryStringQuery<S>

Source§

impl<S> AsQuery<S> for TermQuery<S>

Source§

impl<S> AsQuery<S> for TermsQuery<S>

Source§

impl<S> AsQuery<S> for WildcardQuery<S>