From be2ed095c18643a3b03a8b176dceb9fad8000f16 Mon Sep 17 00:00:00 2001 From: gui machiavelli Date: Wed, 16 Jul 2025 14:47:37 +0200 Subject: [PATCH 1/4] add new experimental feature --- learn/resources/experimental_features_overview.mdx | 1 + .../self_hosted/configure_meilisearch_at_launch.mdx | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/learn/resources/experimental_features_overview.mdx b/learn/resources/experimental_features_overview.mdx index c245ee2aa4..1850758240 100644 --- a/learn/resources/experimental_features_overview.mdx +++ b/learn/resources/experimental_features_overview.mdx @@ -59,3 +59,4 @@ Activating or deactivating experimental features this way does not require you t | [Search query embedding cache](/learn/self_hosted/configure_meilisearch_at_launch#search-query-embedding-cache) | Enable a cache for search query embeddings | CLI flag or environment variable | | [Uncompressed snapshots](/learn/self_hosted/configure_meilisearch_at_launch#uncompressed-snapshots) | Disable snapshot compaction | CLI flag or environment variable | | [Maximum batch payload size](/learn/self_hosted/configure_meilisearch_at_launch#maximum-batch-payload-size) | Limit batch payload size | CLI flag or environment variable | +| [Disable new indexer](/learn/self_hosted/configure_meilisearch_at_launch) | Disables indexer implemented in 2025 | CLI flag or environment variable | diff --git a/learn/self_hosted/configure_meilisearch_at_launch.mdx b/learn/self_hosted/configure_meilisearch_at_launch.mdx index 48d9540b70..3f7db40c24 100644 --- a/learn/self_hosted/configure_meilisearch_at_launch.mdx +++ b/learn/self_hosted/configure_meilisearch_at_launch.mdx @@ -538,6 +538,18 @@ Helps running Meilisearch in cluster environments. It does this by modifying tas - Allows you to manually set task uids by adding a custom `TaskId` header to your API requests - Allows you to dry register tasks by specifying a `DryRun: true` header in your request +### Disable new indexer + + +🚩 This option does not take any values. Assigning a value will throw an error. 🚩 + + +**Environment variable**: `MEILI_EXPERIMENTAL_NO_EDITION_2024_FOR_SETTINGS`
+**CLI option**: `--experimental-no-edition-2024-for-settings`
+**Default value**: `None`
+ +Disables the indexing process implemented in mid 2025 and falls back to the previous workflow. + ### SSL options #### SSL authentication path From f0b6b7e6ea0a95ca833f1651491ddc4e43cf963f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 16 Jul 2025 12:49:14 +0000 Subject: [PATCH 2/4] Update code samples [skip ci] --- ...samples_async_guide_filter_by_statuses_1.mdx | 2 +- ...samples_async_guide_filter_by_statuses_2.mdx | 9 +++++++++ ..._samples_basic_security_tutorial_admin_1.mdx | 8 ++++++++ ...amples_basic_security_tutorial_listing_1.mdx | 8 ++++++++ ...samples_basic_security_tutorial_search_1.mdx | 11 +++++++++++ .../samples/code_samples_facet_search_1.mdx | 10 ++++++++++ .../samples/code_samples_facet_search_2.mdx | 14 ++++++++++++++ .../samples/code_samples_facet_search_3.mdx | 9 +++++++++ .../samples/code_samples_get_all_batches_1.mdx | 4 ++++ snippets/samples/code_samples_get_batch_1.mdx | 4 ++++ .../samples/code_samples_get_embedders_1.mdx | 4 ++++ ...code_samples_get_facet_search_settings_1.mdx | 8 ++++++++ ...ode_samples_get_prefix_search_settings_1.mdx | 8 ++++++++ .../samples/code_samples_get_similar_post_1.mdx | 8 ++++++++ ...de_samples_getting_started_add_documents.mdx | 2 +- .../code_samples_getting_started_faceting.mdx | 3 +++ ...ndex_settings_tutorial_api_get_setting_1.mdx | 7 +++++++ ...ndex_settings_tutorial_api_put_setting_1.mdx | 7 +++++++ ...mples_index_settings_tutorial_api_task_1.mdx | 4 ++++ .../samples/code_samples_negative_search_1.mdx | 8 ++++++++ .../samples/code_samples_negative_search_2.mdx | 8 ++++++++ .../code_samples_related_results_embedder_1.mdx | 16 ++++++++++++++++ .../code_samples_related_results_search_1.mdx | 9 +++++++++ .../code_samples_related_results_similar_1.mdx | 7 +++++++ .../samples/code_samples_reset_embedders_1.mdx | 4 ++++ ...de_samples_reset_facet_search_settings_1.mdx | 8 ++++++++ ...e_samples_reset_prefix_search_settings_1.mdx | 8 ++++++++ ..._samples_search_parameter_guide_hybrid_1.mdx | 10 ++++++++++ ..._samples_search_parameter_guide_vector_1.mdx | 10 ++++++++++ ...h_parameter_reference_retrieve_vectors_1.mdx | 11 +++++++++++ snippets/samples/code_samples_search_post_1.mdx | 2 +- .../samples/code_samples_update_embedders_1.mdx | 17 +++++++++++++++++ ...e_samples_update_facet_search_settings_1.mdx | 8 ++++++++ .../code_samples_update_faceting_settings_1.mdx | 4 ++++ ..._samples_update_prefix_search_settings_1.mdx | 8 ++++++++ 35 files changed, 265 insertions(+), 3 deletions(-) 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 5f67d39c0a..609fe90cbf 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 53e8fd2b45..985a91b0bf 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 ea0c45fb6b..e0c803c2b7 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 549088f028..a9d2c5be09 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 dbdade30f0..edbef1caf6 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 dd2e107242..da8b4b9c92 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 a5380a0aea..6f56f8435b 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 e6fbb18947..f67d373024 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 bce94d986e..4031177657 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 7b9a8a94cd..a7bc333b17 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 d7deff5fc3..96325ca5df 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 8b2b15b7c3..bfb04ecd97 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 19b518df42..155d4eddb9 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 a844168958..534a02785f 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 9d12568789..eeeb95f895 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 ccc5902646..2461cbd02d 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 897990733e..b971e33ecf 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 66b6ffee9b..f82116ae0e 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 84c80314e6..2242766f42 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 213db2da59..d55e30b10f 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 bd3146b385..f25dc2bba2 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 5a66c27378..1f285b42dd 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 c2ae498ed7..38bb44ab58 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 8e263858ad..24fbdbf355 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 77e8a2ff82..b9eaee8011 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 6b939a3d3d..9591211ceb 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 a4670ca9c5..b161e68b30 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 eb830e9216..e61487848d 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 3c1c97152a..ad8a2c35af 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 bb19be7a1c..3aa36ee056 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 3057177f41..dfb4452cb6 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 f8fb461eeb..89c1458e1c 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 bb7a7ac190..bbcbe5a398 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 b56548fe96..5c1ce28ef9 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 2f7f00d6af..4e4dcd1f60 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 From 41006cf5e4a55c6d68a17f3138390a9b43ef6d3f Mon Sep 17 00:00:00 2001 From: gui machiavelli Date: Wed, 23 Jul 2025 18:24:03 +0200 Subject: [PATCH 3/4] =?UTF-8?q?=F0=9F=92=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- learn/resources/experimental_features_overview.mdx | 2 +- learn/self_hosted/configure_meilisearch_at_launch.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/learn/resources/experimental_features_overview.mdx b/learn/resources/experimental_features_overview.mdx index 1850758240..90a16a8b15 100644 --- a/learn/resources/experimental_features_overview.mdx +++ b/learn/resources/experimental_features_overview.mdx @@ -59,4 +59,4 @@ Activating or deactivating experimental features this way does not require you t | [Search query embedding cache](/learn/self_hosted/configure_meilisearch_at_launch#search-query-embedding-cache) | Enable a cache for search query embeddings | CLI flag or environment variable | | [Uncompressed snapshots](/learn/self_hosted/configure_meilisearch_at_launch#uncompressed-snapshots) | Disable snapshot compaction | CLI flag or environment variable | | [Maximum batch payload size](/learn/self_hosted/configure_meilisearch_at_launch#maximum-batch-payload-size) | Limit batch payload size | CLI flag or environment variable | -| [Disable new indexer](/learn/self_hosted/configure_meilisearch_at_launch) | Disables indexer implemented in 2025 | CLI flag or environment variable | +| [Disable new indexer](/learn/self_hosted/configure_meilisearch_at_launch) | Use previous settings indexer | CLI flag or environment variable | diff --git a/learn/self_hosted/configure_meilisearch_at_launch.mdx b/learn/self_hosted/configure_meilisearch_at_launch.mdx index 3f7db40c24..5bd0c3dc10 100644 --- a/learn/self_hosted/configure_meilisearch_at_launch.mdx +++ b/learn/self_hosted/configure_meilisearch_at_launch.mdx @@ -548,7 +548,7 @@ Helps running Meilisearch in cluster environments. It does this by modifying tas **CLI option**: `--experimental-no-edition-2024-for-settings`
**Default value**: `None`
-Disables the indexing process implemented in mid 2025 and falls back to the previous workflow. +Falls back to previous settings indexer. ### SSL options From d73cd0d38af4ea60f01291de7446b69a2b2ed042 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 23 Jul 2025 16:24:38 +0000 Subject: [PATCH 4/4] Update code samples [skip ci] --- .../code_samples_add_movies_json_1.mdx | 2 +- ...ode_samples_add_or_replace_documents_1.mdx | 2 +- ...code_samples_add_or_update_documents_1.mdx | 2 +- ...les_date_guide_filterable_attributes_1.mdx | 2 +- .../code_samples_date_guide_index_1.mdx | 2 +- ..._distinct_attribute_guide_filterable_1.mdx | 2 +- .../samples/code_samples_facet_search_3.mdx | 1 + ...mples_faceted_search_update_settings_1.mdx | 2 +- ...de_samples_filtering_update_settings_1.mdx | 2 +- ...ples_geosearch_guide_filter_settings_1.mdx | 2 +- ..._samples_getting_started_add_documents.mdx | 2 +- ...samples_getting_started_add_meteorites.mdx | 2 +- ...code_samples_landing_getting_started_1.mdx | 2 +- ...y_field_guide_add_document_primary_key.mdx | 3 ++- .../code_samples_typo_tolerance_guide_5.mdx | 6 +++++ ...samples_update_filterable_attributes_1.mdx | 22 ++++++++++++++++++- 16 files changed, 42 insertions(+), 14 deletions(-) diff --git a/snippets/samples/code_samples_add_movies_json_1.mdx b/snippets/samples/code_samples_add_movies_json_1.mdx index 414246df01..068206c70c 100644 --- a/snippets/samples/code_samples_add_movies_json_1.mdx +++ b/snippets/samples/code_samples_add_movies_json_1.mdx @@ -59,7 +59,7 @@ file, _ := os.ReadFile("movies.json") var movies interface{} json.Unmarshal([]byte(file), &movies) -client.Index("movies").AddDocuments(&movies) +client.Index("movies").AddDocuments(&movies, nil) ``` ```csharp C# diff --git a/snippets/samples/code_samples_add_or_replace_documents_1.mdx b/snippets/samples/code_samples_add_or_replace_documents_1.mdx index 13ae38b9dc..7d9fb5a7f1 100644 --- a/snippets/samples/code_samples_add_or_replace_documents_1.mdx +++ b/snippets/samples/code_samples_add_or_replace_documents_1.mdx @@ -80,7 +80,7 @@ documents := []map[string]interface{}{ "release_date": "2019-03-23", }, } -client.Index("movies").AddDocuments(documents) +client.Index("movies").AddDocuments(documents, nil) ``` ```csharp C# diff --git a/snippets/samples/code_samples_add_or_update_documents_1.mdx b/snippets/samples/code_samples_add_or_update_documents_1.mdx index a3c1cd3dda..53a1dd5260 100644 --- a/snippets/samples/code_samples_add_or_update_documents_1.mdx +++ b/snippets/samples/code_samples_add_or_update_documents_1.mdx @@ -66,7 +66,7 @@ documents := []map[string]interface{}{ "genres": "comedy", }, } -client.Index("movies").UpdateDocuments(documents) +client.Index("movies").UpdateDocuments(documents, nil) ``` ```csharp C# diff --git a/snippets/samples/code_samples_date_guide_filterable_attributes_1.mdx b/snippets/samples/code_samples_date_guide_filterable_attributes_1.mdx index 2fe51dc2b2..98595a358c 100644 --- a/snippets/samples/code_samples_date_guide_filterable_attributes_1.mdx +++ b/snippets/samples/code_samples_date_guide_filterable_attributes_1.mdx @@ -30,7 +30,7 @@ client.index('games').update_filterable_attributes(['release_timestamp']) ``` ```go Go -filterableAttributes := []string{"release_timestamp"} +filterableAttributes := []interface{}{"release_timestamp"} client.Index("games").UpdateFilterableAttributes(&filterableAttributes) ``` diff --git a/snippets/samples/code_samples_date_guide_index_1.mdx b/snippets/samples/code_samples_date_guide_index_1.mdx index 1f22bd3bd0..4f89b156e7 100644 --- a/snippets/samples/code_samples_date_guide_index_1.mdx +++ b/snippets/samples/code_samples_date_guide_index_1.mdx @@ -54,7 +54,7 @@ byteValue, _ := io.ReadAll(jsonFile) var games []map[string]interface{} json.Unmarshal(byteValue, &games) -client.Index("games").AddDocuments(games) +client.Index("games").AddDocuments(games, nil) ``` ```csharp C# diff --git a/snippets/samples/code_samples_distinct_attribute_guide_filterable_1.mdx b/snippets/samples/code_samples_distinct_attribute_guide_filterable_1.mdx index 60e30700be..7412dfadb6 100644 --- a/snippets/samples/code_samples_distinct_attribute_guide_filterable_1.mdx +++ b/snippets/samples/code_samples_distinct_attribute_guide_filterable_1.mdx @@ -38,7 +38,7 @@ client.index('products').update_filterable_attributes([ ``` ```go Go -filterableAttributes := []string{ +filterableAttributes := []interface{}{ "product_id", "sku", "url", diff --git a/snippets/samples/code_samples_facet_search_3.mdx b/snippets/samples/code_samples_facet_search_3.mdx index f67d373024..70c2bcdc9d 100644 --- a/snippets/samples/code_samples_facet_search_3.mdx +++ b/snippets/samples/code_samples_facet_search_3.mdx @@ -42,6 +42,7 @@ client.index('books').facet_search('genres', 'c') client.Index("books").FacetSearch(&meilisearch.FacetSearchRequest{ FacetQuery: "c", FacetName: "genres", + ExhaustiveFacetCount: true }) ``` diff --git a/snippets/samples/code_samples_faceted_search_update_settings_1.mdx b/snippets/samples/code_samples_faceted_search_update_settings_1.mdx index 9c7b7d2430..7b5255a440 100644 --- a/snippets/samples/code_samples_faceted_search_update_settings_1.mdx +++ b/snippets/samples/code_samples_faceted_search_update_settings_1.mdx @@ -34,7 +34,7 @@ client.index('movie_ratings').update_filterable_attributes(['genres', 'rating', ``` ```go Go -filterableAttributes := []string{ +filterableAttributes := []interface{}{ "genres", "rating", "language", diff --git a/snippets/samples/code_samples_filtering_update_settings_1.mdx b/snippets/samples/code_samples_filtering_update_settings_1.mdx index b73c1095ba..9ecaed4cf9 100644 --- a/snippets/samples/code_samples_filtering_update_settings_1.mdx +++ b/snippets/samples/code_samples_filtering_update_settings_1.mdx @@ -47,7 +47,7 @@ client.index('movies').update_filterable_attributes([ ``` ```go Go -resp, err := client.Index("movies").UpdateFilterableAttributes(&[]string{ +resp, err := client.Index("movies").UpdateFilterableAttributes(&[]interface{}{ "director", "genres", }) diff --git a/snippets/samples/code_samples_geosearch_guide_filter_settings_1.mdx b/snippets/samples/code_samples_geosearch_guide_filter_settings_1.mdx index 79aa98f987..32732e6004 100644 --- a/snippets/samples/code_samples_geosearch_guide_filter_settings_1.mdx +++ b/snippets/samples/code_samples_geosearch_guide_filter_settings_1.mdx @@ -37,7 +37,7 @@ client.index('restaurants').update_filterable_attributes(['_geo']) ``` ```go Go -filterableAttributes := []string{ +filterableAttributes := []interface{}{ "_geo", } client.Index("restaurants").UpdateFilterableAttributes(&filterableAttributes) diff --git a/snippets/samples/code_samples_getting_started_add_documents.mdx b/snippets/samples/code_samples_getting_started_add_documents.mdx index eeeb95f895..9a2a53b200 100644 --- a/snippets/samples/code_samples_getting_started_add_documents.mdx +++ b/snippets/samples/code_samples_getting_started_add_documents.mdx @@ -140,7 +140,7 @@ func main() { var movies []map[string]interface{} json.Unmarshal(byteValue, &movies) - _, err := client.Index("movies").AddDocuments(movies) + _, err := client.Index("movies").AddDocuments(movies, nil) if err != nil { panic(err) } diff --git a/snippets/samples/code_samples_getting_started_add_meteorites.mdx b/snippets/samples/code_samples_getting_started_add_meteorites.mdx index 90a4cf556a..77373581e9 100644 --- a/snippets/samples/code_samples_getting_started_add_meteorites.mdx +++ b/snippets/samples/code_samples_getting_started_add_meteorites.mdx @@ -60,7 +60,7 @@ byteValue, _ := io.ReadAll(jsonFile) var meteorites []map[string]interface{} json.Unmarshal(byteValue, &meteorites) -client.Index("meteorites").AddDocuments(meteorites) +client.Index("meteorites").AddDocuments(meteorites, nil) ``` ```csharp C# diff --git a/snippets/samples/code_samples_landing_getting_started_1.mdx b/snippets/samples/code_samples_landing_getting_started_1.mdx index 49d15df9ec..b353fed743 100644 --- a/snippets/samples/code_samples_landing_getting_started_1.mdx +++ b/snippets/samples/code_samples_landing_getting_started_1.mdx @@ -81,7 +81,7 @@ documents := []map[string]interface{}{ { "id": 5, "title": "Moana" }, { "id": 6, "title": "Philadelphia" }, } -client.Index("movies").AddDocuments(documents) +client.Index("movies").AddDocuments(documents, nil) ``` ```csharp C# diff --git a/snippets/samples/code_samples_primary_field_guide_add_document_primary_key.mdx b/snippets/samples/code_samples_primary_field_guide_add_document_primary_key.mdx index 1c30ac8015..6d8ecc6272 100644 --- a/snippets/samples/code_samples_primary_field_guide_add_document_primary_key.mdx +++ b/snippets/samples/code_samples_primary_field_guide_add_document_primary_key.mdx @@ -85,7 +85,8 @@ documents := []map[string]interface{}{ "price": 5.00, }, } -client.Index("books").AddDocuments(documents, "reference_number") +refrenceNumber := "reference_number" +client.Index("books").AddDocuments(documents, &refrenceNumber) ``` ```csharp C# diff --git a/snippets/samples/code_samples_typo_tolerance_guide_5.mdx b/snippets/samples/code_samples_typo_tolerance_guide_5.mdx index 6733ece79f..55582c22bf 100644 --- a/snippets/samples/code_samples_typo_tolerance_guide_5.mdx +++ b/snippets/samples/code_samples_typo_tolerance_guide_5.mdx @@ -26,4 +26,10 @@ $client->index('movies')->updateTypoTolerance([ 'disableOnNumbers' => true ]); ``` + +```go Go +client.Index("movies").UpdateTypoTolerance(&meilisearch.TypoTolerance{ + DisableOnNumbers: true +}) +``` \ No newline at end of file diff --git a/snippets/samples/code_samples_update_filterable_attributes_1.mdx b/snippets/samples/code_samples_update_filterable_attributes_1.mdx index e5319e8fef..280180ef98 100644 --- a/snippets/samples/code_samples_update_filterable_attributes_1.mdx +++ b/snippets/samples/code_samples_update_filterable_attributes_1.mdx @@ -71,9 +71,29 @@ client.index('movies').update_filterable_attributes([ ``` ```go Go -filterableAttributes := []string{ +filterableAttributes := []interface{}{ "genres", "director", + AttributeRule{ + AttributePatterns: []string{"tag"} + Features: AttributeFeatures{ + FacetSearch: false, + Filter: FilterFeatures{ + Equality: true, + Comparison: false, + } + } + }, + map[string]interface{}{ + "attributePatterns": []interface{}{"year"} + "features": map[string]interface{}{ + "facetSearch": false, + "filter": map[string]interface{}{ + "equality": true, + "comparison": true, + } + } + } } client.Index("movies").UpdateFilterableAttributes(&filterableAttributes) ```