Skip to content

Commit c653a56

Browse files
committed
Make prefix search an enum
1 parent 1aa65a1 commit c653a56

File tree

2 files changed

+33
-13
lines changed

2 files changed

+33
-13
lines changed

.code-samples.meilisearch.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1690,15 +1690,15 @@ reset_facet_search_settings_1: |-
16901690
.await
16911691
.unwrap();
16921692
get_prefix_search_settings_1: |-
1693-
let prefix_search: String = client
1693+
let prefix_search: PrefixSearchSettings = client
16941694
.index(INDEX_UID)
16951695
.get_prefix_search()
16961696
.await
16971697
.unwrap();
16981698
update_prefix_search_settings_1: |-
16991699
let task: TaskInfo = client
17001700
.index(INDEX_UID)
1701-
.set_prefix_search("disabled".to_string())
1701+
.set_prefix_search(PrefixSearchSettings::Disabled)
17021702
.await
17031703
.unwrap();
17041704
reset_prefix_search_settings_1: |-

src/settings.rs

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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")]
4259
pub 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

Comments
 (0)