diff --git a/.code-samples.meilisearch.yaml b/.code-samples.meilisearch.yaml
index 87007b7a4..eb28cfa3b 100644
--- a/.code-samples.meilisearch.yaml
+++ b/.code-samples.meilisearch.yaml
@@ -1467,6 +1467,18 @@ related_results_similar_1: |-
"id": 192,
"embedder": "EMBEDDER_NAME"
}'
+export_post_1: |-
+ curl \
+ -X POST 'MEILISEARCH_URL/export' \
+ -H 'Content-Type: application/json' \
+ --data-binary '{
+ "url": "TARGET_INSTANCE_URL",
+ "indexes": {
+ "*": {
+ "overrideSettings": true
+ }
+ }
+ }'
### Code samples for experimental features
experimental_get_metrics_1: |-
diff --git a/docs.json b/docs.json
index 268872406..7860daa2b 100644
--- a/docs.json
+++ b/docs.json
@@ -342,7 +342,8 @@
"reference/api/dump",
"reference/api/experimental_features",
"reference/api/metrics",
- "reference/api/logs"
+ "reference/api/logs",
+ "reference/api/export"
]
},
{
diff --git a/reference/api/export.mdx b/reference/api/export.mdx
new file mode 100644
index 000000000..325f4e864
--- /dev/null
+++ b/reference/api/export.mdx
@@ -0,0 +1,64 @@
+---
+title: Export
+description: "Migrate between instances with the `/export` route"
+---
+
+import { RouteHighlighter } from '/snippets/route_highlighter.mdx'
+
+import CodeSamplesExperimentalDeleteLogsStream1 from '/snippets/samples/code_samples_experimental_delete_logs_stream_1.mdx';
+
+Use the `/export` route to transfer data from your origin instace to a remote target instance. This is particularly useful when migrating from your local development environment to a Meilisearch Cloud instance.
+
+## Migrate database between instances
+
+
+
+Migrate data from the origin instance to a target instance.
+
+### Body
+
+| Name | Type | Default value | Description |
+| ------------------- | ------ | ------------- | --------------------------------------------------------------------------------------------------------- |
+| **`url`** * | String | `null` | The target instance's URL address. Required |
+| **`apiKey`** * | String | `null` | An API key with full admin access to the target instance |
+| **`payloadSize`** * | String | "50 MiB" | A string specifying the payload size in a human-readable format |
+| **`indexes`** * | Object | `null` | A set of patterns matching the indexes you want to export. Defaults to all indexes in the origin instance |
+
+#### `url`
+
+A string pointing to a remote Meilisearch instance, including its port if necessary.
+
+This field is required.
+
+#### `apiKey`
+
+A security key with full admin permissions to a secured Meilisearch instance.
+
+#### `payloadSize`
+
+The maximum size of each single data payload in a human-readable format such as `"100MiB"`. Larger payloads are generally more efficient, but require significantly more powerful machines.
+
+#### `indexes`
+
+A set of objects whose keys correspond to patterns matching the indexes you want to export. By default, Meilisearch exports all documents across all indexes.
+
+Each index object accepts the following fields:
+
+- `filter`: a [filter expression](/learn/filtering_and_sorting/filter_expression_reference) defining the subset of documents to export. Optional, defaults to `null`
+- `overrideSettings`: if `false`, uses the index settings as configured in the origin instance. if `true`, uses the target instance settings. Optional, defaults to `false`.
+
+### Example
+
+
+
+#### Response
+
+```json
+{
+ "taskUid": 2,
+ "indexUid": null,
+ "status": "enqueued",
+ "type": "export",
+ "enqueuedAt": "2025-06-26T12:54:10.785864Z"
+}
+```
diff --git a/reference/errors/error_codes.mdx b/reference/errors/error_codes.mdx
index ddd649862..014297e80 100644
--- a/reference/errors/error_codes.mdx
+++ b/reference/errors/error_codes.mdx
@@ -184,6 +184,26 @@ The [`offset`](/reference/api/documents#query-parameters) parameter is invalid.
The provided `_geo` field of one or more documents is invalid. Meilisearch expects `_geo` to be an object with two fields, `lat` and `lng`, each containing geographic coordinates expressed as a string or floating point number. Read more about `_geo` and how to troubleshoot it in [our dedicated guide](/learn/filtering_and_sorting/geosearch).
+## `invalid_export_url`
+
+The export target instance URL is invalid or could not be reached.
+
+## `invalid_export_api_key`
+
+The supplied security key does not have the required permissions to access the target instance.
+
+## `invalid_export_payload_size`
+
+The provided payload size is invalid. The payload size must be a string indicating the maximum payload size in a human-readable format.
+
+## `invalid_export_indexes_patterns`
+
+The provided index pattern is invalid. The index pattern must be an alphanumeric string, optionally including a wildcard.
+
+## `invalid_export_index_filter`
+
+The provided index export filter is not a valid [filter expression](/learn/filtering_and_sorting/filter_expression_reference).
+
## `invalid_facet_search_facet_name`
The attribute used for the `facetName` field is either not a string or not defined in the [`filterableAttributes` list](/reference/api/settings#filterable-attributes).
diff --git a/snippets/samples/code_samples_async_guide_filter_by_statuses_1.mdx b/snippets/samples/code_samples_async_guide_filter_by_statuses_1.mdx
index 5f67d39c0..609fe90cb 100644
--- a/snippets/samples/code_samples_async_guide_filter_by_statuses_1.mdx
+++ b/snippets/samples/code_samples_async_guide_filter_by_statuses_1.mdx
@@ -42,7 +42,7 @@ await client.GetTasksAsync(new TasksQuery { Statuses = new List
```rust Rust
let mut query = TasksQuery::new(&client);
let tasks = query
- .with_statuses(["failed", "canceled"])
+ .with_statuses(["failed"])
.execute()
.await
.unwrap();
diff --git a/snippets/samples/code_samples_async_guide_filter_by_statuses_2.mdx b/snippets/samples/code_samples_async_guide_filter_by_statuses_2.mdx
index 53e8fd2b4..985a91b0b 100644
--- a/snippets/samples/code_samples_async_guide_filter_by_statuses_2.mdx
+++ b/snippets/samples/code_samples_async_guide_filter_by_statuses_2.mdx
@@ -4,4 +4,13 @@
curl \
-X GET 'MEILISEARCH_URL/tasks?statuses=failed,canceled'
```
+
+```rust Rust
+let mut query = TasksQuery::new(&client);
+let tasks = query
+ .with_statuses(["failed", "canceled"])
+ .execute()
+ .await
+ .unwrap();
+```
\ No newline at end of file
diff --git a/snippets/samples/code_samples_basic_security_tutorial_admin_1.mdx b/snippets/samples/code_samples_basic_security_tutorial_admin_1.mdx
index ea0c45fb6..e0c803c2b 100644
--- a/snippets/samples/code_samples_basic_security_tutorial_admin_1.mdx
+++ b/snippets/samples/code_samples_basic_security_tutorial_admin_1.mdx
@@ -10,4 +10,12 @@ curl \
"primaryKey": "id"
}'
```
+
+```rust Rust
+let client = Client::new("http://localhost:7700", Some("DEFAULT_ADMIN_API_KEY"));
+let task = client
+ .create_index("medical_records", Some("id"))
+ .await
+ .unwrap();
+```
\ No newline at end of file
diff --git a/snippets/samples/code_samples_basic_security_tutorial_listing_1.mdx b/snippets/samples/code_samples_basic_security_tutorial_listing_1.mdx
index 549088f02..a9d2c5be0 100644
--- a/snippets/samples/code_samples_basic_security_tutorial_listing_1.mdx
+++ b/snippets/samples/code_samples_basic_security_tutorial_listing_1.mdx
@@ -4,4 +4,12 @@
curl -X GET 'MEILISEARCH_URL/keys' \
-H 'Authorization: Bearer MASTER_KEY'
```
+
+```rust Rust
+let client = Client::new("http://localhost:7700", Some("MASTER_KEY"));
+client
+ .get_keys()
+ .await
+ .unwrap();
+```
\ No newline at end of file
diff --git a/snippets/samples/code_samples_basic_security_tutorial_search_1.mdx b/snippets/samples/code_samples_basic_security_tutorial_search_1.mdx
index dbdade30f..edbef1caf 100644
--- a/snippets/samples/code_samples_basic_security_tutorial_search_1.mdx
+++ b/snippets/samples/code_samples_basic_security_tutorial_search_1.mdx
@@ -7,4 +7,15 @@ curl \
-H 'Authorization: Bearer DEFAULT_SEARCH_API_KEY' \
--data-binary '{ "q": "appointments" }'
```
+
+```rust Rust
+let client = Client::new("http://localhost:7700", Some("DEFAULT_SEARCH_API_KEY"));
+let index = client.index("medical_records");
+index
+ .search()
+ .with_query("appointments")
+ .execute::()
+ .await
+ .unwrap();
+```
\ No newline at end of file
diff --git a/snippets/samples/code_samples_facet_search_1.mdx b/snippets/samples/code_samples_facet_search_1.mdx
index dd2e10724..da8b4b9c9 100644
--- a/snippets/samples/code_samples_facet_search_1.mdx
+++ b/snippets/samples/code_samples_facet_search_1.mdx
@@ -60,6 +60,16 @@ var query = new SearchFacetsQuery()
await client.Index("books").FacetSearchAsync("genres", query);
```
+```rust Rust
+let res = client.index("books")
+ .facet_search("genres")
+ .with_facet_query("fiction")
+ .with_filter("rating > 3")
+ .execute()
+ .await
+ .unwrap();
+```
+
```dart Dart
await client.index('books').facetSearch(
FacetSearchQuery(
diff --git a/snippets/samples/code_samples_facet_search_2.mdx b/snippets/samples/code_samples_facet_search_2.mdx
index a5380a0ae..6f56f8435 100644
--- a/snippets/samples/code_samples_facet_search_2.mdx
+++ b/snippets/samples/code_samples_facet_search_2.mdx
@@ -62,6 +62,20 @@ var newFaceting = new Faceting
await client.Index("books").UpdateFacetingAsync(newFaceting);
```
+```rust Rust
+let mut facet_sort_setting = BTreeMap::new();
+facet_sort_setting.insert("genres".to_string(), FacetSortValue::Count);
+let faceting = FacetingSettings {
+ max_values_per_facet: 100,
+ sort_facet_values_by: Some(facet_sort_setting),
+};
+
+let res = client.index("books")
+ .set_faceting(&faceting)
+ .await
+ .unwrap();
+```
+
```dart Dart
await client.index('books').updateFaceting(
Faceting(
diff --git a/snippets/samples/code_samples_facet_search_3.mdx b/snippets/samples/code_samples_facet_search_3.mdx
index e6fbb1894..f67d37302 100644
--- a/snippets/samples/code_samples_facet_search_3.mdx
+++ b/snippets/samples/code_samples_facet_search_3.mdx
@@ -53,6 +53,15 @@ var query = new SearchFacetsQuery()
await client.Index("books").FacetSearchAsync("genres", query);
```
+```rust Rust
+let res = client.index("books")
+ .facet_search("genres")
+ .with_facet_query("c")
+ .execute()
+ .await
+ .unwrap();
+```
+
```dart Dart
await client.index('books').facetSearch(
FacetSearchQuery(
diff --git a/snippets/samples/code_samples_get_all_batches_1.mdx b/snippets/samples/code_samples_get_all_batches_1.mdx
index bce94d986..403117765 100644
--- a/snippets/samples/code_samples_get_all_batches_1.mdx
+++ b/snippets/samples/code_samples_get_all_batches_1.mdx
@@ -20,4 +20,8 @@ $client->getBatches();
```ruby Ruby
client.batches
```
+
+```go Go
+client.GetBatches();
+```
\ No newline at end of file
diff --git a/snippets/samples/code_samples_get_batch_1.mdx b/snippets/samples/code_samples_get_batch_1.mdx
index 7b9a8a94c..a7bc333b1 100644
--- a/snippets/samples/code_samples_get_batch_1.mdx
+++ b/snippets/samples/code_samples_get_batch_1.mdx
@@ -20,4 +20,8 @@ $client->getBatch(BATCH_UID);
```ruby Ruby
client.batch(BATCH_UID)
```
+
+```go Go
+client.GetBatch(BATCH_UID);
+```
\ No newline at end of file
diff --git a/snippets/samples/code_samples_get_embedders_1.mdx b/snippets/samples/code_samples_get_embedders_1.mdx
index d7deff5fc..96325ca5d 100644
--- a/snippets/samples/code_samples_get_embedders_1.mdx
+++ b/snippets/samples/code_samples_get_embedders_1.mdx
@@ -8,4 +8,8 @@ curl \
```ruby Ruby
client.index('INDEX_NAME').embedders
```
+
+```rust Rust
+let embedders = index.get_embedders().await.unwrap();
+```
\ No newline at end of file
diff --git a/snippets/samples/code_samples_get_facet_search_settings_1.mdx b/snippets/samples/code_samples_get_facet_search_settings_1.mdx
index 8b2b15b7c..bfb04ecd9 100644
--- a/snippets/samples/code_samples_get_facet_search_settings_1.mdx
+++ b/snippets/samples/code_samples_get_facet_search_settings_1.mdx
@@ -24,4 +24,12 @@ client.index('INDEX_UID').facet_search_setting
```go Go
client.Index("books").GetFacetSearch()
```
+
+```rust Rust
+let facet_search: bool = client
+ .index(INDEX_UID)
+ .get_facet_search()
+ .await
+ .unwrap();
+```
\ No newline at end of file
diff --git a/snippets/samples/code_samples_get_prefix_search_settings_1.mdx b/snippets/samples/code_samples_get_prefix_search_settings_1.mdx
index 19b518df4..155d4eddb 100644
--- a/snippets/samples/code_samples_get_prefix_search_settings_1.mdx
+++ b/snippets/samples/code_samples_get_prefix_search_settings_1.mdx
@@ -24,4 +24,12 @@ client.index('INDEX_UID').prefix_search
```go Go
client.Index("books").GetPrefixSearch()
```
+
+```rust Rust
+let prefix_search: PrefixSearchSettings = client
+ .index(INDEX_UID)
+ .get_prefix_search()
+ .await
+ .unwrap();
+```
\ No newline at end of file
diff --git a/snippets/samples/code_samples_get_similar_post_1.mdx b/snippets/samples/code_samples_get_similar_post_1.mdx
index a84416895..534a02785 100644
--- a/snippets/samples/code_samples_get_similar_post_1.mdx
+++ b/snippets/samples/code_samples_get_similar_post_1.mdx
@@ -39,4 +39,12 @@ client.Index("INDEX_NAME").SearchSimilarDocuments(&meilisearch.SimilarDocumentQu
Embedder: "default",
}, resp)
```
+
+```rust Rust
+let results = index
+ .similar_search("TARGET_DOCUMENT_ID", "EMBEDDER_NAME")
+ .execute()
+ .await
+ .unwrap();
+```
\ No newline at end of file
diff --git a/snippets/samples/code_samples_getting_started_add_documents.mdx b/snippets/samples/code_samples_getting_started_add_documents.mdx
index 9d1256878..eeeb95f89 100644
--- a/snippets/samples/code_samples_getting_started_add_documents.mdx
+++ b/snippets/samples/code_samples_getting_started_add_documents.mdx
@@ -192,7 +192,7 @@ namespace Meilisearch_demo
```text Rust
// In your .toml file:
[dependencies]
- meilisearch-sdk = "0.28.0"
+ meilisearch-sdk = "0.29.1"
# futures: because we want to block on futures
futures = "0.3"
# serde: required if you are going to use documents
diff --git a/snippets/samples/code_samples_getting_started_faceting.mdx b/snippets/samples/code_samples_getting_started_faceting.mdx
index ccc590264..2461cbd02 100644
--- a/snippets/samples/code_samples_getting_started_faceting.mdx
+++ b/snippets/samples/code_samples_getting_started_faceting.mdx
@@ -78,8 +78,11 @@ await client.Index("movies").UpdateFacetingAsync(faceting);
```
```rust Rust
+let mut facet_sort_setting = BTreeMap::new();
+facet_sort_setting.insert("*".to_string(), FacetSortValue::Count);
let mut faceting = FacetingSettings {
max_values_per_facet: 2,
+ sort_facet_values_by: Some(facet_sort_setting),
};
let task: TaskInfo = client
diff --git a/snippets/samples/code_samples_index_settings_tutorial_api_get_setting_1.mdx b/snippets/samples/code_samples_index_settings_tutorial_api_get_setting_1.mdx
index 897990733..b971e33ec 100644
--- a/snippets/samples/code_samples_index_settings_tutorial_api_get_setting_1.mdx
+++ b/snippets/samples/code_samples_index_settings_tutorial_api_get_setting_1.mdx
@@ -4,4 +4,11 @@
curl \
-X GET 'MEILISEARCH_URL/indexes/INDEX_NAME/settings/searchable-attributes'
```
+
+```rust Rust
+let searchable_attributes: Vec = index
+ .get_searchable_attributes()
+ .await
+ .unwrap();
+```
\ No newline at end of file
diff --git a/snippets/samples/code_samples_index_settings_tutorial_api_put_setting_1.mdx b/snippets/samples/code_samples_index_settings_tutorial_api_put_setting_1.mdx
index 66b6ffee9..f82116ae0 100644
--- a/snippets/samples/code_samples_index_settings_tutorial_api_put_setting_1.mdx
+++ b/snippets/samples/code_samples_index_settings_tutorial_api_put_setting_1.mdx
@@ -9,4 +9,11 @@ curl \
"overview"
]'
```
+
+```rust Rust
+let task = index
+ .set_searchable_attributes(["title", "overview"])
+ .await
+ .unwrap();
+```
\ No newline at end of file
diff --git a/snippets/samples/code_samples_index_settings_tutorial_api_task_1.mdx b/snippets/samples/code_samples_index_settings_tutorial_api_task_1.mdx
index 84c80314e..2242766f4 100644
--- a/snippets/samples/code_samples_index_settings_tutorial_api_task_1.mdx
+++ b/snippets/samples/code_samples_index_settings_tutorial_api_task_1.mdx
@@ -4,4 +4,8 @@
curl \
-X GET 'MEILISEARCH_URL/tasks/TASK_UID'
```
+
+```rust Rust
+let task_status = index.get_task(&task).await.unwrap();
+```
\ No newline at end of file
diff --git a/snippets/samples/code_samples_negative_search_1.mdx b/snippets/samples/code_samples_negative_search_1.mdx
index 213db2da5..d55e30b10 100644
--- a/snippets/samples/code_samples_negative_search_1.mdx
+++ b/snippets/samples/code_samples_negative_search_1.mdx
@@ -14,4 +14,12 @@ client.index('movies').search('-escape')
```php PHP
$client->index('movies')->search('-escape');
```
+
+```rust Rust
+let results = index.search()
+ .with_query("-escape")
+ .execute()
+ .await
+ .unwrap();
+```
\ No newline at end of file
diff --git a/snippets/samples/code_samples_negative_search_2.mdx b/snippets/samples/code_samples_negative_search_2.mdx
index bd3146b38..f25dc2bba 100644
--- a/snippets/samples/code_samples_negative_search_2.mdx
+++ b/snippets/samples/code_samples_negative_search_2.mdx
@@ -14,4 +14,12 @@ client.index('movies').search('-"escape"')
```php PHP
$client->index('movies')->search('-"escape"');
```
+
+```rust Rust
+let results = index.search()
+ .with_query("-\"escape room\"")
+ .execute()
+ .await
+ .unwrap();
+```
\ No newline at end of file
diff --git a/snippets/samples/code_samples_related_results_embedder_1.mdx b/snippets/samples/code_samples_related_results_embedder_1.mdx
index 5a66c2737..1f285b42d 100644
--- a/snippets/samples/code_samples_related_results_embedder_1.mdx
+++ b/snippets/samples/code_samples_related_results_embedder_1.mdx
@@ -15,4 +15,20 @@ curl -X PATCH 'MEILISEARCH_URL/indexes/movies/settings'
}
}'
```
+
+```rust Rust
+let embedders = HashMap::from([(
+ String::from("movies-text"),
+ Embedder {
+ source: EmbedderSource::OpenAi,
+ api_key: Some(String::from("OPENAI_API_KEY")),
+ model: Some(String::from("text-embedding-3-small")),
+ document_template: Some(String::from("A movie titled '{{doc.title}}' released in {{ doc.release_date }}. The movie genres are: {{doc.genres}}. The story is about: {{doc.overview|truncatewords: 20}}")),
+ ..Embedder::default()
+ }
+)]);
+movies.set_embedders(&embedders)
+ .await
+ .unwrap();
+```
\ No newline at end of file
diff --git a/snippets/samples/code_samples_related_results_search_1.mdx b/snippets/samples/code_samples_related_results_search_1.mdx
index c2ae498ed..38bb44ab5 100644
--- a/snippets/samples/code_samples_related_results_search_1.mdx
+++ b/snippets/samples/code_samples_related_results_search_1.mdx
@@ -11,4 +11,13 @@ curl -X POST 'MEILISEARCH_URL/indexes/INDEX_NAME/search' \
}
}'
```
+
+```rust Rust
+let results = movies.search()
+ .with_query("batman")
+ .with_hybrid("EMBEDDER_NAME", 0.5)
+ .execute()
+ .await
+ .unwrap();
+```
\ No newline at end of file
diff --git a/snippets/samples/code_samples_related_results_similar_1.mdx b/snippets/samples/code_samples_related_results_similar_1.mdx
index 8e263858a..24fbdbf35 100644
--- a/snippets/samples/code_samples_related_results_similar_1.mdx
+++ b/snippets/samples/code_samples_related_results_similar_1.mdx
@@ -10,4 +10,11 @@ curl \
"embedder": "EMBEDDER_NAME"
}'
```
+
+```rust Rust
+let results = movies.similar_search("192", "EMBEDDER_NAME")
+ .execute()
+ .await
+ .unwrap();
+```
\ No newline at end of file
diff --git a/snippets/samples/code_samples_reset_embedders_1.mdx b/snippets/samples/code_samples_reset_embedders_1.mdx
index 77e8a2ff8..b9eaee801 100644
--- a/snippets/samples/code_samples_reset_embedders_1.mdx
+++ b/snippets/samples/code_samples_reset_embedders_1.mdx
@@ -8,4 +8,8 @@ curl \
```ruby Ruby
client.index('INDEX_NAME').reset_embedders
```
+
+```rust Rust
+index.reset_embedders().await.unwrap();
+```
\ No newline at end of file
diff --git a/snippets/samples/code_samples_reset_facet_search_settings_1.mdx b/snippets/samples/code_samples_reset_facet_search_settings_1.mdx
index 6b939a3d3..9591211ce 100644
--- a/snippets/samples/code_samples_reset_facet_search_settings_1.mdx
+++ b/snippets/samples/code_samples_reset_facet_search_settings_1.mdx
@@ -24,4 +24,12 @@ client.index('INDEX_UID').reset_facet_search_setting
```go Go
client.Index("books").ResetFacetSearch()
```
+
+```rust Rust
+let task: TaskInfo = client
+ .index(INDEX_UID)
+ .reset_facet_search()
+ .await
+ .unwrap();
+```
\ No newline at end of file
diff --git a/snippets/samples/code_samples_reset_prefix_search_settings_1.mdx b/snippets/samples/code_samples_reset_prefix_search_settings_1.mdx
index a4670ca9c..b161e68b3 100644
--- a/snippets/samples/code_samples_reset_prefix_search_settings_1.mdx
+++ b/snippets/samples/code_samples_reset_prefix_search_settings_1.mdx
@@ -24,4 +24,12 @@ client.index('INDEX_UID').reset_prefix_search
```go Go
client.Index("books").ResetPrefixSearch()
```
+
+```rust Rust
+let task: TaskInfo = client
+ .index(INDEX_UID)
+ .reset_prefix_search()
+ .await
+ .unwrap();
+```
\ No newline at end of file
diff --git a/snippets/samples/code_samples_search_parameter_guide_hybrid_1.mdx b/snippets/samples/code_samples_search_parameter_guide_hybrid_1.mdx
index eb830e921..e61487848 100644
--- a/snippets/samples/code_samples_search_parameter_guide_hybrid_1.mdx
+++ b/snippets/samples/code_samples_search_parameter_guide_hybrid_1.mdx
@@ -29,4 +29,14 @@ $client->index('INDEX_NAME')->search('kitchen utensils', [
]
]);
```
+
+```rust Rust
+let results = index
+ .search()
+ .with_query("kitchen utensils")
+ .with_hybrid("EMBEDDER_NAME", 0.9)
+ .execute()
+ .await
+ .unwrap();
+```
\ No newline at end of file
diff --git a/snippets/samples/code_samples_search_parameter_guide_vector_1.mdx b/snippets/samples/code_samples_search_parameter_guide_vector_1.mdx
index 3c1c97152..ad8a2c35a 100644
--- a/snippets/samples/code_samples_search_parameter_guide_vector_1.mdx
+++ b/snippets/samples/code_samples_search_parameter_guide_vector_1.mdx
@@ -10,4 +10,14 @@ curl -X POST 'MEILISEARCH_URL/indexes/INDEX_NAME/search' \
}
}'
```
+
+```rust Rust
+let results = index
+ .search()
+ .with_vector(&[0.0, 1.0, 2.0])
+ .with_hybrid("EMBEDDER_NAME", 1.0)
+ .execute()
+ .await
+ .unwrap();
+```
\ No newline at end of file
diff --git a/snippets/samples/code_samples_search_parameter_reference_retrieve_vectors_1.mdx b/snippets/samples/code_samples_search_parameter_reference_retrieve_vectors_1.mdx
index bb19be7a1..3aa36ee05 100644
--- a/snippets/samples/code_samples_search_parameter_reference_retrieve_vectors_1.mdx
+++ b/snippets/samples/code_samples_search_parameter_reference_retrieve_vectors_1.mdx
@@ -29,4 +29,15 @@ $client->index('INDEX_NAME')->search('kitchen utensils', [
]
]);
```
+
+```rust Rust
+let results = index
+ .search()
+ .with_query("kitchen utensils")
+ .with_retrieve_vectors(true)
+ .with_hybrid("EMBEDDER_NAME", 0.5)
+ .execute()
+ .await
+ .unwrap();
+```
\ No newline at end of file
diff --git a/snippets/samples/code_samples_search_post_1.mdx b/snippets/samples/code_samples_search_post_1.mdx
index 3057177f4..dfb4452cb 100644
--- a/snippets/samples/code_samples_search_post_1.mdx
+++ b/snippets/samples/code_samples_search_post_1.mdx
@@ -39,7 +39,7 @@ await client.Index("movies").SearchAsync("American ninja");
let results: SearchResults = client
.index("movies")
.search()
- .with_query("American ninja")
+ .with_query("american ninja")
.execute()
.await
.unwrap();
diff --git a/snippets/samples/code_samples_update_embedders_1.mdx b/snippets/samples/code_samples_update_embedders_1.mdx
index f8fb461ee..89c1458e1 100644
--- a/snippets/samples/code_samples_update_embedders_1.mdx
+++ b/snippets/samples/code_samples_update_embedders_1.mdx
@@ -46,4 +46,21 @@ client.index('INDEX_NAME').update_embedders(
}
)
```
+
+```rust Rust
+let embedders = HashMap::from([(
+ String::from("default"),
+ Embedder {
+ source: EmbedderSource::OpenAi,
+ api_key: Some(String::from("OPEN_AI_API_KEY")),
+ model: Some(String::from("text-embedding-3-small")),
+ document_template: Some(String::from("A document titled '{{doc.title}}' whose description starts with {{doc.overview|truncatewords: 20}}")),
+ ..Embedder::default()
+ }
+)]);
+let task = index
+ .set_embedders(&embedders)
+ .await
+ .unwrap();
+```
\ No newline at end of file
diff --git a/snippets/samples/code_samples_update_facet_search_settings_1.mdx b/snippets/samples/code_samples_update_facet_search_settings_1.mdx
index bb7a7ac19..bbcbe5a39 100644
--- a/snippets/samples/code_samples_update_facet_search_settings_1.mdx
+++ b/snippets/samples/code_samples_update_facet_search_settings_1.mdx
@@ -26,4 +26,12 @@ client.index('INDEX_UID').update_facet_search_setting(false)
```go Go
client.Index("books").UpdateFacetSearch(false)
```
+
+```rust Rust
+let task: TaskInfo = client
+ .index(INDEX_UID)
+ .set_facet_search(false)
+ .await
+ .unwrap();
+```
\ No newline at end of file
diff --git a/snippets/samples/code_samples_update_faceting_settings_1.mdx b/snippets/samples/code_samples_update_faceting_settings_1.mdx
index b56548fe9..5c1ce28ef 100644
--- a/snippets/samples/code_samples_update_faceting_settings_1.mdx
+++ b/snippets/samples/code_samples_update_faceting_settings_1.mdx
@@ -85,8 +85,12 @@ await client.Index("books").UpdateFacetingAsync(faceting);
```
```rust Rust
+let mut facet_sort_setting = BTreeMap::new();
+facet_sort_setting.insert(String::from("*"), FacetSortValue::Alpha);
+facet_sort_setting.insert(String::from("genres"), FacetSortValue::Count);
let mut faceting = FacetingSettings {
max_values_per_facet: 2,
+ sort_facet_values_by: Some(facet_sort_setting),
};
let task: TaskInfo = client
diff --git a/snippets/samples/code_samples_update_prefix_search_settings_1.mdx b/snippets/samples/code_samples_update_prefix_search_settings_1.mdx
index 2f7f00d6a..4e4dcd1f6 100644
--- a/snippets/samples/code_samples_update_prefix_search_settings_1.mdx
+++ b/snippets/samples/code_samples_update_prefix_search_settings_1.mdx
@@ -26,4 +26,12 @@ client.index('INDEX_UID').update_prefix_search('disabled')
```go Go
client.Index("books").UpdatePrefixSearch("disabled")
```
+
+```rust Rust
+let task: TaskInfo = client
+ .index(INDEX_UID)
+ .set_prefix_search(PrefixSearchSettings::Disabled)
+ .await
+ .unwrap();
+```
\ No newline at end of file