Struct meilisearch_sdk::client::Client
source · [−]pub struct Client { /* private fields */ }Expand description
The top-level struct of the SDK, representing a client containing indexes.
Implementations
sourceimpl Client
impl Client
sourcepub fn new(host: impl Into<String>, api_key: impl Into<String>) -> Client
pub fn new(host: impl Into<String>, api_key: impl Into<String>) -> Client
Create a client using the specified server. Don’t put a ‘/’ at the end of the host. In production mode, see the documentation about authentication.
Example
// create the client
let client = Client::new(MEILISEARCH_HOST, MEILISEARCH_API_KEY);sourcepub async fn list_all_indexes(&self) -> Result<IndexesResults, Error>
pub async fn list_all_indexes(&self) -> Result<IndexesResults, Error>
sourcepub async fn list_all_indexes_with(
&self,
indexes_query: &IndexesQuery<'_>
) -> Result<IndexesResults, Error>
pub async fn list_all_indexes_with(
&self,
indexes_query: &IndexesQuery<'_>
) -> Result<IndexesResults, Error>
List all Indexes and returns values as instances of Index.
Example
// create the client
let client = Client::new(MEILISEARCH_HOST, MEILISEARCH_API_KEY);
let mut query = IndexesQuery::new(&client);
query.with_limit(1);
let indexes: IndexesResults = client.list_all_indexes_with(&query).await.unwrap();
assert_eq!(indexes.limit, 1);sourcepub async fn list_all_indexes_raw(&self) -> Result<Value, Error>
pub async fn list_all_indexes_raw(&self) -> Result<Value, Error>
sourcepub async fn list_all_indexes_raw_with(
&self,
indexes_query: &IndexesQuery<'_>
) -> Result<Value, Error>
pub async fn list_all_indexes_raw_with(
&self,
indexes_query: &IndexesQuery<'_>
) -> Result<Value, Error>
List all Indexes with query parameters and returns as Json.
Example
// create the client
let client = Client::new(MEILISEARCH_HOST, MEILISEARCH_API_KEY);
let mut query = IndexesQuery::new(&client);
query.with_limit(1);
let json_indexes = client.list_all_indexes_raw_with(&query).await.unwrap();
println!("{:?}", json_indexes);sourcepub async fn get_raw_index(&self, uid: impl AsRef<str>) -> Result<Value, Error>
pub async fn get_raw_index(&self, uid: impl AsRef<str>) -> Result<Value, Error>
Get a raw JSON Index, this index should already exist.
Example
// create the client
let client = Client::new(MEILISEARCH_HOST, MEILISEARCH_API_KEY);
// get the index named "get_raw_index"
let raw_index = client.get_raw_index("get_raw_index").await.unwrap();
assert_eq!(raw_index.get("uid").unwrap().as_str().unwrap(), "get_raw_index");If you use it directly from an Index, you can use the method Index::fetch_info, which is the equivalent method from an index.
sourcepub fn index(&self, uid: impl Into<String>) -> Index
pub fn index(&self, uid: impl Into<String>) -> Index
Create a corresponding object of an Index without any check or doing an HTTP call.
sourcepub async fn create_index(
&self,
uid: impl AsRef<str>,
primary_key: Option<&str>
) -> Result<TaskInfo, Error>
pub async fn create_index(
&self,
uid: impl AsRef<str>,
primary_key: Option<&str>
) -> Result<TaskInfo, Error>
Create an Index. The second parameter will be used as the primary key of the new index. If it is not specified, Meilisearch will try to infer the primary key.
Example
// Create the client
let client = Client::new(MEILISEARCH_HOST, MEILISEARCH_API_KEY);
// Create a new index called movies and access it
let task = client.create_index("create_index", None).await.unwrap();
// Wait for the task to complete
let task = task.wait_for_completion(&client, None, None).await.unwrap();
// Try to get the inner index if the task succeeded
let index = task.try_make_index(&client).unwrap();
assert_eq!(index.as_ref(), "create_index");sourcepub async fn delete_index(&self, uid: impl AsRef<str>) -> Result<TaskInfo, Error>
pub async fn delete_index(&self, uid: impl AsRef<str>) -> Result<TaskInfo, Error>
Delete an index from its UID. To delete an Index, use the Index::delete method.
sourcepub async fn get_indexes(&self) -> Result<IndexesResults, Error>
pub async fn get_indexes(&self) -> Result<IndexesResults, Error>
Alias for Client::list_all_indexes.
sourcepub async fn get_indexes_with(
&self,
indexes_query: &IndexesQuery<'_>
) -> Result<IndexesResults, Error>
pub async fn get_indexes_with(
&self,
indexes_query: &IndexesQuery<'_>
) -> Result<IndexesResults, Error>
Alias for Client::list_all_indexes_with.
sourcepub async fn get_indexes_raw(&self) -> Result<Value, Error>
pub async fn get_indexes_raw(&self) -> Result<Value, Error>
Alias for Client::list_all_indexes_raw.
sourcepub async fn get_indexes_raw_with(
&self,
indexes_query: &IndexesQuery<'_>
) -> Result<Value, Error>
pub async fn get_indexes_raw_with(
&self,
indexes_query: &IndexesQuery<'_>
) -> Result<Value, Error>
Alias for Client::list_all_indexes_raw_with.
sourcepub async fn get_stats(&self) -> Result<ClientStats, Error>
pub async fn get_stats(&self) -> Result<ClientStats, Error>
Get stats of all indexes.
Example
let client = Client::new(MEILISEARCH_HOST, MEILISEARCH_API_KEY);
let stats = client.get_stats().await.unwrap();sourcepub async fn health(&self) -> Result<Health, Error>
pub async fn health(&self) -> Result<Health, Error>
Get health of Meilisearch server.
Example
let client = Client::new(MEILISEARCH_HOST, MEILISEARCH_API_KEY);
let health = client.health().await.unwrap();
assert_eq!(health.status, "available");sourcepub async fn is_healthy(&self) -> bool
pub async fn is_healthy(&self) -> bool
Get health of Meilisearch server, return true or false.
Example
let client = Client::new(MEILISEARCH_HOST, MEILISEARCH_API_KEY);
let health = client.is_healthy().await;
assert_eq!(health, true);sourcepub async fn get_keys_with(
&self,
keys_query: &KeysQuery
) -> Result<KeysResults, Error>
pub async fn get_keys_with(
&self,
keys_query: &KeysQuery
) -> Result<KeysResults, Error>
Get the API Keys from Meilisearch with parameters. See the meilisearch documentation.
See also Client::create_key and Client::get_key.
Example
let client = Client::new(MEILISEARCH_HOST, MEILISEARCH_API_KEY);
let mut query = KeysQuery::new();
query.with_limit(1);
let keys = client.get_keys_with(&query).await.unwrap();
assert_eq!(keys.results.len(), 1);sourcepub async fn get_keys(&self) -> Result<KeysResults, Error>
pub async fn get_keys(&self) -> Result<KeysResults, Error>
Get the API Keys from Meilisearch. See the meilisearch documentation.
See also Client::create_key and Client::get_key.
Example
let client = Client::new(MEILISEARCH_HOST, MEILISEARCH_API_KEY);
let keys = client.get_keys().await.unwrap();
assert_eq!(keys.limit, 20);sourcepub async fn get_key(&self, key: impl AsRef<str>) -> Result<Key, Error>
pub async fn get_key(&self, key: impl AsRef<str>) -> Result<Key, Error>
Get one API Key from Meilisearch. See the meilisearch documentation.
See also Client::create_key and Client::get_keys.
Example
let client = Client::new(MEILISEARCH_HOST, MEILISEARCH_API_KEY);
.find(|k| k.name.as_ref().map_or(false, |name| name.starts_with("Default Search API Key")))
.unwrap();
let key = client.get_key(key).await.unwrap();
assert_eq!(key.name, Some("Default Search API Key".to_string()));sourcepub async fn delete_key(&self, key: impl AsRef<str>) -> Result<(), Error>
pub async fn delete_key(&self, key: impl AsRef<str>) -> Result<(), Error>
Delete an API Key from Meilisearch. See the meilisearch documentation.
See also Client::create_key, Client::update_key and Client::get_key.
Example
let client = Client::new(MEILISEARCH_HOST, MEILISEARCH_API_KEY);
let key = KeyBuilder::new();
let key = client.create_key(key).await.unwrap();
let inner_key = key.key.clone();
client.delete_key(key).await.unwrap();
let keys = client.get_keys().await.unwrap();
assert!(keys.results.iter().all(|key| key.key != inner_key));sourcepub async fn create_key(&self, key: impl AsRef<KeyBuilder>) -> Result<Key, Error>
pub async fn create_key(&self, key: impl AsRef<KeyBuilder>) -> Result<Key, Error>
Create an API Key in Meilisearch. See the meilisearch documentation.
See also Client::update_key, Client::delete_key and Client::get_key.
Example
let client = Client::new(MEILISEARCH_HOST, MEILISEARCH_API_KEY);
let name = "create_key".to_string();
let mut key = KeyBuilder::new();
key.with_name(&name);
let key = client.create_key(key).await.unwrap();
assert_eq!(key.name, Some(name));sourcepub async fn update_key(&self, key: impl AsRef<KeyUpdater>) -> Result<Key, Error>
pub async fn update_key(&self, key: impl AsRef<KeyUpdater>) -> Result<Key, Error>
Update an API Key in Meilisearch. See the meilisearch documentation.
See also Client::create_key, Client::delete_key and Client::get_key.
Example
let client = Client::new(MEILISEARCH_HOST, MEILISEARCH_API_KEY);
let new_key = KeyBuilder::new();
let name = "my name".to_string();
let mut new_key = client.create_key(new_key).await.unwrap();
let mut key_update = KeyUpdater::new(new_key);
key_update.with_name(&name);
let key = client.update_key(key_update).await.unwrap();
assert_eq!(key.name, Some(name));sourcepub async fn get_version(&self) -> Result<Version, Error>
pub async fn get_version(&self) -> Result<Version, Error>
Get version of the Meilisearch server.
Example
let client = Client::new(MEILISEARCH_HOST, MEILISEARCH_API_KEY);
let version = client.get_version().await.unwrap();sourcepub async fn wait_for_task(
&self,
task_id: impl AsRef<u32>,
interval: Option<Duration>,
timeout: Option<Duration>
) -> Result<Task, Error>
pub async fn wait_for_task(
&self,
task_id: impl AsRef<u32>,
interval: Option<Duration>,
timeout: Option<Duration>
) -> Result<Task, Error>
Wait until Meilisearch processes a Task, and get its status.
interval = The frequency at which the server should be polled. Default = 50ms
timeout = The maximum time to wait for processing to complete. Default = 5000ms
If the waited time exceeds timeout then an Error::Timeout will be returned.
See also [Index::wait_for_task, Task::wait_for_completion, TaskInfo::wait_for_completion].
Example
let client = Client::new(MEILISEARCH_HOST, MEILISEARCH_API_KEY);
let movies = client.index("movies_client_wait_for_task");
let task = movies.add_documents(&[
Document { id: 0, kind: "title".into(), value: "The Social Network".to_string() },
Document { id: 1, kind: "title".into(), value: "Harry Potter and the Sorcerer's Stone".to_string() },
], None).await.unwrap();
let status = client.wait_for_task(task, None, None).await.unwrap();
assert!(matches!(status, Task::Succeeded { .. }));sourcepub async fn get_task(&self, task_id: impl AsRef<u32>) -> Result<Task, Error>
pub async fn get_task(&self, task_id: impl AsRef<u32>) -> Result<Task, Error>
Get a task from the server given a task id.
Example
let task = index.delete_all_documents().await.unwrap();
let task = client.get_task(task).await.unwrap();sourcepub async fn get_tasks_with(
&self,
tasks_query: &TasksQuery<'_>
) -> Result<TasksResults, Error>
pub async fn get_tasks_with(
&self,
tasks_query: &TasksQuery<'_>
) -> Result<TasksResults, Error>
Get all tasks with query parameters from the server.
Example
let mut query = tasks::TasksQuery::new(&client);
query.with_index_uid(["get_tasks_with"]);
let tasks = client.get_tasks_with(&query).await.unwrap();sourcepub async fn get_tasks(&self) -> Result<TasksResults, Error>
pub async fn get_tasks(&self) -> Result<TasksResults, Error>
sourcepub fn generate_tenant_token(
&self,
api_key_uid: String,
search_rules: Value,
api_key: Option<&str>,
expires_at: Option<OffsetDateTime>
) -> Result<String, Error>
pub fn generate_tenant_token(
&self,
api_key_uid: String,
search_rules: Value,
api_key: Option<&str>,
expires_at: Option<OffsetDateTime>
) -> Result<String, Error>
Generates a new tenant token.
Example
let api_key_uid = "76cf8b87-fd12-4688-ad34-260d930ca4f4".to_string();
let token = client.generate_tenant_token(api_key_uid, serde_json::json!(["*"]), None, None).unwrap();
let client = client::Client::new(MEILISEARCH_HOST, token);sourceimpl Client
impl Client
Dump related methods.
See the dumps module.
sourcepub async fn create_dump(&self) -> Result<TaskInfo, Error>
pub async fn create_dump(&self) -> Result<TaskInfo, Error>
Triggers a dump creation process. Once the process is complete, a dump is created in the dumps directory. If the dumps directory does not exist yet, it will be created.
Example
let task_info = client.create_dump().await.unwrap();
assert!(matches!(
task_info,
TaskInfo {
update_type: TaskType::DumpCreation { .. },
..
}
));Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Client
impl Send for Client
impl Sync for Client
impl Unpin for Client
impl UnwindSafe for Client
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Instruments this type with the provided Span, returning an
Instrumented wrapper. Read more
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber to this type, returning a
WithDispatch wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber to this type, returning a
WithDispatch wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more