@@ -37,6 +37,23 @@ pub enum FacetSortValue {
3737 Count ,
3838}
3939
40+ #[ derive( Debug , Serialize , Deserialize , Clone , Eq , PartialEq ) ]
41+ #[ serde( rename_all = "camelCase" ) ]
42+ pub enum PrefixSearchSettings {
43+ /// Calculate prefix search during indexing.
44+ /// This is the default behavior
45+ IndexingTime ,
46+
47+ /// Do not calculate prefix search.
48+ /// May speed up indexing, but will severely impact search result relevancy
49+ Disabled ,
50+
51+ /// Any other value that might be added to Meilisearch in the future but that is not supported by this SDK.
52+ /// If you see one, please open a PR
53+ #[ serde( untagged) ]
54+ Unknown ( String ) ,
55+ }
56+
4057#[ derive( Serialize , Deserialize , Default , Debug , Clone , Eq , PartialEq ) ]
4158#[ serde( rename_all = "camelCase" ) ]
4259pub struct FacetingSettings {
@@ -985,10 +1002,10 @@ impl<Http: HttpClient> Index<Http> {
9851002 /// # index.delete().await.unwrap().wait_for_completion(&client, None, None).await.unwrap();
9861003 /// # });
9871004 /// ```
988- pub async fn get_prefix_search ( & self ) -> Result < String , Error > {
1005+ pub async fn get_prefix_search ( & self ) -> Result < PrefixSearchSettings , Error > {
9891006 self . client
9901007 . http_client
991- . request :: < ( ) , ( ) , String > (
1008+ . request :: < ( ) , ( ) , PrefixSearchSettings > (
9921009 & format ! (
9931010 "{}/indexes/{}/settings/prefix-search" ,
9941011 self . client. host, self . uid
@@ -1966,7 +1983,7 @@ impl<Http: HttpClient> Index<Http> {
19661983 /// # Example
19671984 ///
19681985 /// ```
1969- /// # use meilisearch_sdk::{client::*, indexes::*, settings::Settings};
1986+ /// # use meilisearch_sdk::{client::*, indexes::*, settings::{ Settings, PrefixSearchSettings} };
19701987 /// #
19711988 /// # let MEILISEARCH_URL = option_env!("MEILISEARCH_URL").unwrap_or("http://localhost:7700");
19721989 /// # let MEILISEARCH_API_KEY = option_env!("MEILISEARCH_API_KEY").unwrap_or("masterKey");
@@ -1976,14 +1993,17 @@ impl<Http: HttpClient> Index<Http> {
19761993 /// # client.create_index("set_prefix_search", None).await.unwrap().wait_for_completion(&client, None, None).await.unwrap();
19771994 /// let mut index = client.index("set_prefix_search");
19781995 ///
1979- /// let task = index.set_prefix_search("disabled".to_string() ).await.unwrap();
1996+ /// let task = index.set_prefix_search(PrefixSearchSettings::Disabled ).await.unwrap();
19801997 /// # index.delete().await.unwrap().wait_for_completion(&client, None, None).await.unwrap();
19811998 /// # });
19821999 /// ```
1983- pub async fn set_prefix_search ( & self , prefix_search : String ) -> Result < TaskInfo , Error > {
2000+ pub async fn set_prefix_search (
2001+ & self ,
2002+ prefix_search : PrefixSearchSettings ,
2003+ ) -> Result < TaskInfo , Error > {
19842004 self . client
19852005 . http_client
1986- . request :: < ( ) , String , TaskInfo > (
2006+ . request :: < ( ) , PrefixSearchSettings , TaskInfo > (
19872007 & format ! (
19882008 "{}/indexes/{}/settings/prefix-search" ,
19892009 self . client. host, self . uid
@@ -3175,7 +3195,7 @@ mod tests {
31753195
31763196 #[ meilisearch_test]
31773197 async fn test_get_prefix_search ( index : Index ) {
3178- let expected = "indexingTime" . to_string ( ) ;
3198+ let expected = PrefixSearchSettings :: IndexingTime ;
31793199
31803200 let res = index. get_prefix_search ( ) . await . unwrap ( ) ;
31813201
@@ -3184,10 +3204,10 @@ mod tests {
31843204
31853205 #[ meilisearch_test]
31863206 async fn test_set_prefix_search ( client : Client , index : Index ) {
3187- let expected = "disabled" . to_string ( ) ;
3207+ let expected = PrefixSearchSettings :: Disabled ;
31883208
31893209 let task_info = index
3190- . set_prefix_search ( "disabled" . to_string ( ) )
3210+ . set_prefix_search ( PrefixSearchSettings :: Disabled )
31913211 . await
31923212 . unwrap ( ) ;
31933213 client. wait_for_task ( task_info, None , None ) . await . unwrap ( ) ;
@@ -3199,10 +3219,10 @@ mod tests {
31993219
32003220 #[ meilisearch_test]
32013221 async fn test_reset_prefix_search ( index : Index ) {
3202- let expected = "indexingTime" . to_string ( ) ;
3222+ let expected = PrefixSearchSettings :: IndexingTime ;
32033223
32043224 let task = index
3205- . set_prefix_search ( "disabled" . to_string ( ) )
3225+ . set_prefix_search ( PrefixSearchSettings :: Disabled )
32063226 . await
32073227 . unwrap ( ) ;
32083228 index. wait_for_task ( task, None , None ) . await . unwrap ( ) ;
0 commit comments