pub struct Client { /* private fields */ }
Expand description

The top-level struct of the SDK, representing a client containing indexes.

Implementations

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("http://localhost:7700", "masterKey");

List all Indexes and returns values as instances of Index.

Example
// create the client
let client = Client::new("http://localhost:7700", "masterKey");

let indexes: Vec<Index> = client.list_all_indexes().await.unwrap();
println!("{:?}", indexes);

List all Indexes and returns as Json.

Example
// create the client
let client = Client::new("http://localhost:7700", "masterKey");

let json_indexes: Vec<JsonIndex> = client.list_all_indexes_raw().await.unwrap();
println!("{:?}", json_indexes);

Get an Index, this index should already exist.

Example

// create the client
let client = Client::new("http://localhost:7700", "masterKey");

// get the index named "get_index"
let index = client.get_index("get_index").await.unwrap();
assert_eq!(index.as_ref(), "get_index");

Get a raw JSON Index, this index should already exist.

Example

// create the client
let client = Client::new("http://localhost:7700", "masterKey");

// get the index named "get_raw_index"
let raw_index = client.get_raw_index("get_raw_index").await.unwrap();
assert_eq!(raw_index.uid, "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.

Create a corresponding object of an Index without any check or doing an HTTP call.

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("http://localhost:7700", "masterKey");

// 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");

Delete an index from its UID. To delete an Index, use the Index::delete method.

Get stats of all indexes.

Example
let client = Client::new("http://localhost:7700", "masterKey");
let stats = client.get_stats().await.unwrap();

Get health of Meilisearch server.

Example
let client = Client::new("http://localhost:7700", "masterKey");
let health = client.health().await.unwrap();
assert_eq!(health.status, "available");

Get health of Meilisearch server, return true or false.

Example
let client = Client::new("http://localhost:7700", "masterKey");
let health = client.is_healthy().await;
assert_eq!(health, true);

Get the API Keys from Meilisearch. See the meilisearch documentation.

See also Client::create_key and Client::get_key.

Example
let client = Client::new("http://localhost:7700", "masterKey");
let keys = client.get_keys().await.unwrap();
assert!(keys.len() >= 2);

Get one API Key from Meilisearch. See the meilisearch documentation.

See also Client::create_key and Client::get_keys.

Example
let client = Client::new("http://localhost:7700", "masterKey");
let key_id = // enter your API key here, for the example we'll say we entered our search API key.
let key = client.get_key(key_id).await.unwrap();
assert_eq!(key.description, "Default Search API Key (Use it to search from the frontend)");

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("http://localhost:7700", "masterKey");
let key = KeyBuilder::new("delete_key");
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.iter().all(|key| key.key != inner_key));

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("http://localhost:7700", "masterKey");
let mut key = KeyBuilder::new("create_key");
key.with_index("*").with_action(Action::DocumentsAdd);
let key = client.create_key(key).await.unwrap();
assert_eq!(key.description, "create_key");

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("http://localhost:7700", "masterKey");
let key = KeyBuilder::new("update_key");
let mut key = client.create_key(key).await.unwrap();
assert!(key.indexes.is_empty());

key.indexes = vec!["*".to_string()];
let key = client.update_key(key).await.unwrap();
assert_eq!(key.indexes, vec!["*"]);

Get version of the Meilisearch server.

Example
let client = Client::new("http://localhost:7700", "masterKey");
let version = client.get_version().await.unwrap();

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].

Example
let client = Client::new("http://localhost:7700", "masterKey");
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 { .. }));

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();

Get all tasks from the server.

Example
let tasks = client.get_tasks().await.unwrap();

Generates a new tenant token.

Example
let token = client.generate_tenant_token(serde_json::json!(["*"]), None, None).unwrap();
let client = client::Client::new("http://localhost:7700", token);

Dump related methods.
See the dumps module.

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 dump_info = client.create_dump().await.unwrap();
assert!(matches!(dump_info.status, DumpStatus::InProgress));

Get the status of a dump creation process using the uid returned after calling the dump creation method.

Example
let dump_info = client.get_dump_status(&dump_info.uid).await.unwrap();

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

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

The resulting type after obtaining ownership.

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

🔬 This is a nightly-only experimental API. (toowned_clone_into)

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

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more