diff --git a/.code-samples.meilisearch.yaml b/.code-samples.meilisearch.yaml index cfa10a2d..ebdd64f8 100644 --- a/.code-samples.meilisearch.yaml +++ b/.code-samples.meilisearch.yaml @@ -1681,6 +1681,42 @@ reset_proximity_precision_settings_1: |- .reset_proximity_precision() .await .unwrap(); +get_facet_search_settings_1: |- + let facet_search: bool = client + .index(INDEX_UID) + .get_facet_search() + .await + .unwrap(); +update_facet_search_settings_1: |- + let task: TaskInfo = client + .index(INDEX_UID) + .set_facet_search(false) + .await + .unwrap(); +reset_facet_search_settings_1: |- + let task: TaskInfo = client + .index(INDEX_UID) + .reset_facet_search() + .await + .unwrap(); +get_prefix_search_settings_1: |- + let prefix_search: String = client + .index(INDEX_UID) + .get_prefix_search() + .await + .unwrap(); +update_prefix_search_settings_1: |- + let task: TaskInfo = client + .index(INDEX_UID) + .set_prefix_search("disabled".to_string()) + .await + .unwrap(); +reset_prefix_search_settings_1: |- + let task: TaskInfo = client + .index(INDEX_UID) + .reset_prefix_search() + .await + .unwrap(); get_search_cutoff_1: |- let search_cutoff_ms: String = client .index("movies") diff --git a/src/settings.rs b/src/settings.rs index 003ae4c2..6a8b984d 100644 --- a/src/settings.rs +++ b/src/settings.rs @@ -795,7 +795,73 @@ impl<Http: HttpClient> Index<Http> { .await } - /// Get [typo tolerance](https://www.meilisearch.com/docs/reference/api/settings#typo-tolerance) of the [Index]. + /// Get [facet-search settings](https://www.meilisearch.com/docs/reference/api/settings#facet-search) of the [Index]. + /// + /// # Example + /// + /// ``` + /// # use meilisearch_sdk::{client::*, indexes::*}; + /// # + /// # let MEILISEARCH_URL = option_env!("MEILISEARCH_URL").unwrap_or("http://localhost:7700"); + /// # let MEILISEARCH_API_KEY = option_env!("MEILISEARCH_API_KEY").unwrap_or("masterKey"); + /// # + /// # tokio::runtime::Builder::new_current_thread().enable_all().build().unwrap().block_on(async { + /// # let client = Client::new(MEILISEARCH_URL, Some(MEILISEARCH_API_KEY)).unwrap(); + /// # client.create_index("get_facet_search", None).await.unwrap().wait_for_completion(&client, None, None).await.unwrap(); + /// let index = client.index("get_facet_search"); + /// + /// let facet_search = index.get_facet_search().await.unwrap(); + /// # index.delete().await.unwrap().wait_for_completion(&client, None, None).await.unwrap(); + /// # }); + /// ``` + pub async fn get_facet_search(&self) -> Result<bool, Error> { + self.client + .http_client + .request::<(), (), bool>( + &format!( + "{}/indexes/{}/settings/facet-search", + self.client.host, self.uid + ), + Method::Get { query: () }, + 200, + ) + .await + } + + /// Get [prefix-search settings](https://www.meilisearch.com/docs/reference/api/settings#prefix-search) of the [Index]. + /// + /// # Example + /// + /// ``` + /// # use meilisearch_sdk::{client::*, indexes::*}; + /// # + /// # let MEILISEARCH_URL = option_env!("MEILISEARCH_URL").unwrap_or("http://localhost:7700"); + /// # let MEILISEARCH_API_KEY = option_env!("MEILISEARCH_API_KEY").unwrap_or("masterKey"); + /// # + /// # tokio::runtime::Builder::new_current_thread().enable_all().build().unwrap().block_on(async { + /// # let client = Client::new(MEILISEARCH_URL, Some(MEILISEARCH_API_KEY)).unwrap(); + /// # client.create_index("get_prefix_search", None).await.unwrap().wait_for_completion(&client, None, None).await.unwrap(); + /// let index = client.index("get_prefix_search"); + /// + /// let prefix_search = index.get_prefix_search().await.unwrap(); + /// # index.delete().await.unwrap().wait_for_completion(&client, None, None).await.unwrap(); + /// # }); + /// ``` + pub async fn get_prefix_search(&self) -> Result<String, Error> { + self.client + .http_client + .request::<(), (), String>( + &format!( + "{}/indexes/{}/settings/prefix-search", + self.client.host, self.uid + ), + Method::Get { query: () }, + 200, + ) + .await + } + + /// Get [typo tolerance](https://www.meilisearch.com/docs/learn/configuration/typo_tolerance#typo-tolerance) of the [Index]. /// /// ``` /// # use meilisearch_sdk::{client::*, indexes::*}; @@ -1629,6 +1695,78 @@ impl<Http: HttpClient> Index<Http> { .await } + /// update [facet-search settings](https://www.meilisearch.com/docs/reference/api/settings#facet-search) settings of the [Index]. + /// + /// # Example + /// + /// ``` + /// # use meilisearch_sdk::{client::*, indexes::*, settings::Settings}; + /// # + /// # let MEILISEARCH_URL = option_env!("MEILISEARCH_URL").unwrap_or("http://localhost:7700"); + /// # let MEILISEARCH_API_KEY = option_env!("MEILISEARCH_API_KEY").unwrap_or("masterKey"); + /// # + /// # tokio::runtime::Builder::new_current_thread().enable_all().build().unwrap().block_on(async { + /// let client = Client::new(MEILISEARCH_URL, Some(MEILISEARCH_API_KEY)).unwrap(); + /// # client.create_index("set_facet_search", None).await.unwrap().wait_for_completion(&client, None, None).await.unwrap(); + /// let mut index = client.index("set_facet_search"); + /// + /// let task = index.set_facet_search(false).await.unwrap(); + /// # index.delete().await.unwrap().wait_for_completion(&client, None, None).await.unwrap(); + /// # }); + /// ``` + pub async fn set_facet_search(&self, facet_search: bool) -> Result<TaskInfo, Error> { + self.client + .http_client + .request::<(), bool, TaskInfo>( + &format!( + "{}/indexes/{}/settings/facet-search", + self.client.host, self.uid + ), + Method::Put { + query: (), + body: facet_search, + }, + 202, + ) + .await + } + + /// update [prefix-search settings](https://www.meilisearch.com/docs/reference/api/settings#prefix-search) settings of the [Index]. + /// + /// # Example + /// + /// ``` + /// # use meilisearch_sdk::{client::*, indexes::*, settings::Settings}; + /// # + /// # let MEILISEARCH_URL = option_env!("MEILISEARCH_URL").unwrap_or("http://localhost:7700"); + /// # let MEILISEARCH_API_KEY = option_env!("MEILISEARCH_API_KEY").unwrap_or("masterKey"); + /// # + /// # tokio::runtime::Builder::new_current_thread().enable_all().build().unwrap().block_on(async { + /// let client = Client::new(MEILISEARCH_URL, Some(MEILISEARCH_API_KEY)).unwrap(); + /// # client.create_index("set_prefix_search", None).await.unwrap().wait_for_completion(&client, None, None).await.unwrap(); + /// let mut index = client.index("set_prefix_search"); + /// + /// let task = index.set_prefix_search("disabled".to_string()).await.unwrap(); + /// # index.delete().await.unwrap().wait_for_completion(&client, None, None).await.unwrap(); + /// # }); + /// ``` + pub async fn set_prefix_search(&self, prefix_search: String) -> Result<TaskInfo, Error> { + self.client + .http_client + .request::<(), String, TaskInfo>( + &format!( + "{}/indexes/{}/settings/prefix-search", + self.client.host, self.uid + ), + Method::Put { + query: (), + body: prefix_search, + }, + 202, + ) + .await + } + /// Update [search cutoff](https://www.meilisearch.com/docs/reference/api/settings#search-cutoff) settings of the [Index]. /// /// # Example @@ -2172,6 +2310,72 @@ impl<Http: HttpClient> Index<Http> { .await } + /// Reset [facet-search settings](https://www.meilisearch.com/docs/reference/api/settings#facet-search) settings of the [Index]. + /// + /// # Example + /// + /// ``` + /// # use meilisearch_sdk::{client::*, indexes::*, settings::Settings}; + /// # + /// # let MEILISEARCH_URL = option_env!("MEILISEARCH_URL").unwrap_or("http://localhost:7700"); + /// # let MEILISEARCH_API_KEY = option_env!("MEILISEARCH_API_KEY").unwrap_or("masterKey"); + /// # + /// # tokio::runtime::Builder::new_current_thread().enable_all().build().unwrap().block_on(async { + /// let client = Client::new(MEILISEARCH_URL, Some(MEILISEARCH_API_KEY)).unwrap(); + /// # client.create_index("reset_facet_search", None).await.unwrap().wait_for_completion(&client, None, None).await.unwrap(); + /// let mut index = client.index("reset_facet_search"); + /// + /// let task = index.reset_facet_search().await.unwrap(); + /// # index.delete().await.unwrap().wait_for_completion(&client, None, None).await.unwrap(); + /// # }); + /// ``` + pub async fn reset_facet_search(&self) -> Result<TaskInfo, Error> { + self.client + .http_client + .request::<(), (), TaskInfo>( + &format!( + "{}/indexes/{}/settings/facet-search", + self.client.host, self.uid + ), + Method::Delete { query: () }, + 202, + ) + .await + } + + /// Reset [prefix-search settings](https://www.meilisearch.com/docs/reference/api/settings#prefix-search) settings of the [Index]. + /// + /// # Example + /// + /// ``` + /// # use meilisearch_sdk::{client::*, indexes::*, settings::Settings}; + /// # + /// # let MEILISEARCH_URL = option_env!("MEILISEARCH_URL").unwrap_or("http://localhost:7700"); + /// # let MEILISEARCH_API_KEY = option_env!("MEILISEARCH_API_KEY").unwrap_or("masterKey"); + /// # + /// # tokio::runtime::Builder::new_current_thread().enable_all().build().unwrap().block_on(async { + /// let client = Client::new(MEILISEARCH_URL, Some(MEILISEARCH_API_KEY)).unwrap(); + /// # client.create_index("reset_prefix_search", None).await.unwrap().wait_for_completion(&client, None, None).await.unwrap(); + /// let mut index = client.index("reset_prefix_search"); + /// + /// let task = index.reset_prefix_search().await.unwrap(); + /// # index.delete().await.unwrap().wait_for_completion(&client, None, None).await.unwrap(); + /// # }); + /// ``` + pub async fn reset_prefix_search(&self) -> Result<TaskInfo, Error> { + self.client + .http_client + .request::<(), (), TaskInfo>( + &format!( + "{}/indexes/{}/settings/prefix-search", + self.client.host, self.uid + ), + Method::Delete { query: () }, + 202, + ) + .await + } + /// Reset [search cutoff](https://www.meilisearch.com/docs/reference/api/settings#search-cutoff) settings of the [Index]. /// /// # Example @@ -2558,6 +2762,84 @@ mod tests { assert_eq!(expected, default); } + #[meilisearch_test] + async fn test_get_facet_search(index: Index) { + let expected = true; + + let res = index.get_facet_search().await.unwrap(); + + assert_eq!(expected, res); + } + + #[meilisearch_test] + async fn test_set_facet_search(client: Client, index: Index) { + let expected = false; + + let task_info = index.set_facet_search(false).await.unwrap(); + client.wait_for_task(task_info, None, None).await.unwrap(); + + let res = index.get_facet_search().await.unwrap(); + + assert_eq!(expected, res); + } + + #[meilisearch_test] + async fn test_reset_facet_search(index: Index) { + let expected = true; + + let task = index.set_facet_search(false).await.unwrap(); + index.wait_for_task(task, None, None).await.unwrap(); + + let reset_task = index.reset_facet_search().await.unwrap(); + index.wait_for_task(reset_task, None, None).await.unwrap(); + + let default = index.get_facet_search().await.unwrap(); + + assert_eq!(expected, default); + } + + #[meilisearch_test] + async fn test_get_prefix_search(index: Index) { + let expected = "indexingTime".to_string(); + + let res = index.get_prefix_search().await.unwrap(); + + assert_eq!(expected, res); + } + + #[meilisearch_test] + async fn test_set_prefix_search(client: Client, index: Index) { + let expected = "disabled".to_string(); + + let task_info = index + .set_prefix_search("disabled".to_string()) + .await + .unwrap(); + client.wait_for_task(task_info, None, None).await.unwrap(); + + let res = index.get_prefix_search().await.unwrap(); + + assert_eq!(expected, res); + } + + #[meilisearch_test] + async fn test_reset_prefix_search(index: Index) { + let expected = "indexingTime".to_string(); + + let task = index + .set_prefix_search("disabled".to_string()) + .await + .unwrap(); + index.wait_for_task(task, None, None).await.unwrap(); + + let reset_task = index.reset_prefix_search().await.unwrap(); + index.wait_for_task(reset_task, None, None).await.unwrap(); + + let default = index.get_prefix_search().await.unwrap(); + + assert_eq!(expected, default); + } + #[meilisearch_test] async fn test_get_search_cutoff_ms(index: Index) { let expected = None;