@@ -979,17 +979,14 @@ impl<Http: HttpClient> Index<Http> {
979979 /// # client.create_index("get_embedders", None).await.unwrap().wait_for_completion(&client, None, None).await.unwrap();
980980 /// let index = client.index("get_embedders");
981981 /// #
982- /// # let t = index.set_settings(&Settings{
983- /// # embedders: Some(HashMap::from([(
982+ /// # let t = index.set_embedders(&HashMap::from([(
984983 /// # String::from("default"),
985984 /// # Embedder {
986985 /// # source: EmbedderSource::UserProvided,
987986 /// # dimensions: Some(1),
988987 /// # ..Embedder::default()
989988 /// # }
990- /// # )])),
991- /// # ..Settings::default()
992- /// # }).await.unwrap();
989+ /// # )])).await.unwrap();
993990 /// # t.wait_for_completion(&client, None, None).await.unwrap();
994991 /// let embedders = index.get_embedders().await.unwrap();
995992 /// # index.delete().await.unwrap().wait_for_completion(&client, None, None).await.unwrap();
@@ -1010,6 +1007,54 @@ impl<Http: HttpClient> Index<Http> {
10101007 . map ( |r| r. unwrap_or_default ( ) )
10111008 }
10121009
1010+ /// Set [embedders](https://www.meilisearch.com/docs/learn/vector_search) of the [Index].
1011+ ///
1012+ /// ```
1013+ /// # use std::collections::HashMap;
1014+ /// # use std::string::String;
1015+ /// # use meilisearch_sdk::{indexes::*,settings::Embedder,settings::EmbedderSource,settings::Settings,client::*};
1016+ /// #
1017+ /// # let MEILISEARCH_URL = option_env!("MEILISEARCH_URL").unwrap_or("http://localhost:7700");
1018+ /// # let MEILISEARCH_API_KEY = option_env!("MEILISEARCH_API_KEY").unwrap_or("masterKey");
1019+ /// #
1020+ /// # tokio::runtime::Builder::new_current_thread().enable_all().build().unwrap().block_on(async {
1021+ /// # let client = Client::new(MEILISEARCH_URL, Some(MEILISEARCH_API_KEY)).unwrap();
1022+ /// # client.create_index("set_embedders", None).await.unwrap().wait_for_completion(&client, None, None).await.unwrap();
1023+ /// let index = client.index("set_embedders");
1024+ /// #
1025+ /// let t = index.set_embedders(&HashMap::from([(
1026+ /// String::from("default"),
1027+ /// Embedder {
1028+ /// source: EmbedderSource::UserProvided,
1029+ /// dimensions: Some(1),
1030+ /// ..Embedder::default()
1031+ /// }
1032+ /// )])).await.unwrap();
1033+ /// # t.wait_for_completion(&client, None, None).await.unwrap();
1034+ /// # let embedders = index.get_embedders().await.unwrap();
1035+ /// # index.delete().await.unwrap().wait_for_completion(&client, None, None).await.unwrap();
1036+ /// # });
1037+ /// ```
1038+ pub async fn set_embedders (
1039+ & self ,
1040+ embedders : & HashMap < String , Embedder > ,
1041+ ) -> Result < TaskInfo , Error > {
1042+ self . client
1043+ . http_client
1044+ . request :: < ( ) , & HashMap < String , Embedder > , TaskInfo > (
1045+ & format ! (
1046+ "{}/indexes/{}/settings/embedders" ,
1047+ self . client. host, self . uid
1048+ ) ,
1049+ Method :: Patch {
1050+ query : ( ) ,
1051+ body : embedders,
1052+ } ,
1053+ 202 ,
1054+ )
1055+ . await
1056+ }
1057+
10131058 /// Get [search cutoff](https://www.meilisearch.com/docs/reference/api/settings#search-cutoff) settings of the [Index].
10141059 ///
10151060 /// # Example
@@ -2860,15 +2905,14 @@ mod tests {
28602905 dimensions : Some ( 2 ) ,
28612906 ..Default :: default ( )
28622907 } ;
2863- let embeddings = HashMap :: from ( [ ( "default" . into ( ) , custom_embedder) ] ) ;
2864- let settings = Settings :: new ( ) . with_embedders ( embeddings. clone ( ) ) ;
2908+ let embedders = HashMap :: from ( [ ( "default" . into ( ) , custom_embedder) ] ) ;
28652909
2866- let task_info = index. set_settings ( & settings ) . await . unwrap ( ) ;
2910+ let task_info = index. set_embedders ( & embedders ) . await . unwrap ( ) ;
28672911 client. wait_for_task ( task_info, None , None ) . await . unwrap ( ) ;
28682912
28692913 let res = index. get_embedders ( ) . await . unwrap ( ) ;
28702914
2871- assert_eq ! ( embeddings , res) ;
2915+ assert_eq ! ( embedders , res) ;
28722916 }
28732917
28742918 #[ meilisearch_test]
0 commit comments