Struct meilisearch_sdk::search::SearchQuery
source · pub struct SearchQuery<'a, Http: HttpClient> {Show 19 fields
pub query: Option<&'a str>,
pub offset: Option<usize>,
pub limit: Option<usize>,
pub page: Option<usize>,
pub hits_per_page: Option<usize>,
pub filter: Option<Filter<'a>>,
pub facets: Option<Selectors<&'a [&'a str]>>,
pub sort: Option<&'a [&'a str]>,
pub attributes_to_search_on: Option<&'a [&'a str]>,
pub attributes_to_retrieve: Option<Selectors<&'a [&'a str]>>,
pub attributes_to_crop: Option<Selectors<&'a [(&'a str, Option<usize>)]>>,
pub crop_length: Option<usize>,
pub crop_marker: Option<&'a str>,
pub attributes_to_highlight: Option<Selectors<&'a [&'a str]>>,
pub highlight_pre_tag: Option<&'a str>,
pub highlight_post_tag: Option<&'a str>,
pub show_matches_position: Option<bool>,
pub show_ranking_score: Option<bool>,
pub matching_strategy: Option<MatchingStrategies>,
/* private fields */
}
Expand description
A struct representing a query.
You can add search parameters using the builder syntax.
See this page for the official list and description of all parameters.
§Examples
#[derive(Serialize, Deserialize, Debug)]
struct Movie {
name: String,
description: String,
}
let mut res = SearchQuery::new(&index)
.with_query("space")
.with_offset(42)
.with_limit(21)
.execute::<Movie>()
.await
.unwrap();
assert_eq!(res.limit, Some(21));
let query = index.search()
.with_query("space")
.with_offset(42)
.with_limit(21)
.build(); // you can also execute() instead of build()
Fields§
§query: Option<&'a str>
The text that will be searched for among the documents.
offset: Option<usize>
The number of documents to skip.
If the value of the parameter offset
is n
, the n
first documents (ordered by relevance) will not be returned.
This is helpful for pagination.
Example: If you want to skip the first document, set offset to 1
.
limit: Option<usize>
The maximum number of documents returned.
If the value of the parameter limit
is n
, there will never be more than n
documents in the response.
This is helpful for pagination.
Example: If you don’t want to get more than two documents, set limit to 2
.
Default: 20
page: Option<usize>
The page number on which you paginate.
Pagination starts at 1. If page is 0, no results are returned.
Default: None unless hits_per_page
is defined, in which case page is 1
hits_per_page: Option<usize>
The maximum number of results in a page. A page can contain less results than the number of hits_per_page.
Default: None unless page
is defined, in which case 20
filter: Option<Filter<'a>>
Filter applied to documents.
Read the dedicated guide to learn the syntax.
facets: Option<Selectors<&'a [&'a str]>>
Facets for which to retrieve the matching count.
Can be set to a wildcard value that will select all existing attributes.
Default: all attributes found in the documents.
sort: Option<&'a [&'a str]>
Attributes to sort.
attributes_to_search_on: Option<&'a [&'a str]>
Attributes to perform the search on.
Specify the subset of searchableAttributes for a search without modifying Meilisearch’s index settings.
Default: all searchable attributes found in the documents.
attributes_to_retrieve: Option<Selectors<&'a [&'a str]>>
Attributes to display in the returned documents.
Can be set to a wildcard value that will select all existing attributes.
Default: all attributes found in the documents.
attributes_to_crop: Option<Selectors<&'a [(&'a str, Option<usize>)]>>
Attributes whose values have to be cropped.
Attributes are composed by the attribute name and an optional usize
that overwrites the crop_length
parameter.
Can be set to a wildcard value that will select all existing attributes.
crop_length: Option<usize>
Maximum number of words including the matched query term(s) contained in the returned cropped value(s).
See attributes_to_crop.
Default: 10
crop_marker: Option<&'a str>
Marker at the start and the end of a cropped value.
ex: ...middle of a crop...
Default: ...
attributes_to_highlight: Option<Selectors<&'a [&'a str]>>
Attributes whose values will contain highlighted matching terms.
Can be set to a wildcard value that will select all existing attributes.
highlight_pre_tag: Option<&'a str>
Tag in front of a highlighted term.
ex: <mytag>hello world
Default: <em>
highlight_post_tag: Option<&'a str>
Tag after a highlighted term.
ex: hello world</ mytag>
Default: </em>
show_matches_position: Option<bool>
Defines whether an object that contains information about the matches should be returned or not.
Default: false
show_ranking_score: Option<bool>
Defines whether to show the relevancy score of the match.
Default: false
matching_strategy: Option<MatchingStrategies>
Defines the strategy on how to handle queries containing multiple words.
Implementations§
source§impl<'a, Http: HttpClient> SearchQuery<'a, Http>
impl<'a, Http: HttpClient> SearchQuery<'a, Http>
pub fn new(index: &'a Index<Http>) -> SearchQuery<'a, Http>
pub fn with_query<'b>( &'b mut self, query: &'a str ) -> &'b mut SearchQuery<'a, Http>
pub fn with_offset<'b>( &'b mut self, offset: usize ) -> &'b mut SearchQuery<'a, Http>
pub fn with_limit<'b>( &'b mut self, limit: usize ) -> &'b mut SearchQuery<'a, Http>
sourcepub fn with_page<'b>(&'b mut self, page: usize) -> &'b mut SearchQuery<'a, Http>
pub fn with_page<'b>(&'b mut self, page: usize) -> &'b mut SearchQuery<'a, Http>
Add the page number on which to paginate.
§Example
let mut index = client.index("search_with_page");
let mut query = SearchQuery::new(&index);
query.with_query("").with_page(2);
let res = query.execute::<Movie>().await.unwrap();
sourcepub fn with_hits_per_page<'b>(
&'b mut self,
hits_per_page: usize
) -> &'b mut SearchQuery<'a, Http>
pub fn with_hits_per_page<'b>( &'b mut self, hits_per_page: usize ) -> &'b mut SearchQuery<'a, Http>
Add the maximum number of results per page.
§Example
let mut index = client.index("search_with_hits_per_page");
let mut query = SearchQuery::new(&index);
query.with_query("").with_hits_per_page(2);
let res = query.execute::<Movie>().await.unwrap();
pub fn with_filter<'b>( &'b mut self, filter: &'a str ) -> &'b mut SearchQuery<'a, Http>
pub fn with_array_filter<'b>( &'b mut self, filter: Vec<&'a str> ) -> &'b mut SearchQuery<'a, Http>
pub fn with_facets<'b>( &'b mut self, facets: Selectors<&'a [&'a str]> ) -> &'b mut SearchQuery<'a, Http>
pub fn with_sort<'b>( &'b mut self, sort: &'a [&'a str] ) -> &'b mut SearchQuery<'a, Http>
pub fn with_attributes_to_search_on<'b>( &'b mut self, attributes_to_search_on: &'a [&'a str] ) -> &'b mut SearchQuery<'a, Http>
pub fn with_attributes_to_retrieve<'b>( &'b mut self, attributes_to_retrieve: Selectors<&'a [&'a str]> ) -> &'b mut SearchQuery<'a, Http>
pub fn with_attributes_to_crop<'b>( &'b mut self, attributes_to_crop: Selectors<&'a [(&'a str, Option<usize>)]> ) -> &'b mut SearchQuery<'a, Http>
pub fn with_crop_length<'b>( &'b mut self, crop_length: usize ) -> &'b mut SearchQuery<'a, Http>
pub fn with_crop_marker<'b>( &'b mut self, crop_marker: &'a str ) -> &'b mut SearchQuery<'a, Http>
pub fn with_attributes_to_highlight<'b>( &'b mut self, attributes_to_highlight: Selectors<&'a [&'a str]> ) -> &'b mut SearchQuery<'a, Http>
pub fn with_highlight_pre_tag<'b>( &'b mut self, highlight_pre_tag: &'a str ) -> &'b mut SearchQuery<'a, Http>
pub fn with_highlight_post_tag<'b>( &'b mut self, highlight_post_tag: &'a str ) -> &'b mut SearchQuery<'a, Http>
pub fn with_show_matches_position<'b>( &'b mut self, show_matches_position: bool ) -> &'b mut SearchQuery<'a, Http>
pub fn with_show_ranking_score<'b>( &'b mut self, show_ranking_score: bool ) -> &'b mut SearchQuery<'a, Http>
pub fn with_matching_strategy<'b>( &'b mut self, matching_strategy: MatchingStrategies ) -> &'b mut SearchQuery<'a, Http>
pub fn with_index_uid<'b>(&'b mut self) -> &'b mut SearchQuery<'a, Http>
pub fn build(&mut self) -> SearchQuery<'a, Http>
sourcepub async fn execute<T: 'static + DeserializeOwned + Send + Sync>(
&'a self
) -> Result<SearchResults<T>, Error>
pub async fn execute<T: 'static + DeserializeOwned + Send + Sync>( &'a self ) -> Result<SearchResults<T>, Error>
Execute the query and fetch the results.
Trait Implementations§
source§impl<'a, Http: Clone + HttpClient> Clone for SearchQuery<'a, Http>
impl<'a, Http: Clone + HttpClient> Clone for SearchQuery<'a, Http>
source§fn clone(&self) -> SearchQuery<'a, Http>
fn clone(&self) -> SearchQuery<'a, Http>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<'a, Http: Debug + HttpClient> Debug for SearchQuery<'a, Http>
impl<'a, Http: Debug + HttpClient> Debug for SearchQuery<'a, Http>
source§impl<'a, Http: HttpClient> Serialize for SearchQuery<'a, Http>
impl<'a, Http: HttpClient> Serialize for SearchQuery<'a, Http>
Auto Trait Implementations§
impl<'a, Http> Freeze for SearchQuery<'a, Http>
impl<'a, Http> RefUnwindSafe for SearchQuery<'a, Http>where
Http: RefUnwindSafe,
impl<'a, Http> Send for SearchQuery<'a, Http>
impl<'a, Http> Sync for SearchQuery<'a, Http>
impl<'a, Http> Unpin for SearchQuery<'a, Http>
impl<'a, Http> UnwindSafe for SearchQuery<'a, Http>where
Http: RefUnwindSafe,
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
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> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more