tests: Use Server::wait_task() instead of Index::wait_task() in search::

The code is mostly duplicated. Server::wait_task() has better handling for errors and more retries.

Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
This commit is contained in:
Martin Tzvetanov Grigorov 2025-06-22 14:37:54 +03:00
parent fc6cc80705
commit 855fa555a3
No known key found for this signature in database
GPG Key ID: 3194FD8C1AE300EF
12 changed files with 160 additions and 160 deletions

View File

@ -152,7 +152,7 @@ async fn distinct_search_with_offset_no_ranking() {
let documents = DOCUMENTS.clone(); let documents = DOCUMENTS.clone();
index.add_documents(documents, Some(DOCUMENT_PRIMARY_KEY)).await; index.add_documents(documents, Some(DOCUMENT_PRIMARY_KEY)).await;
let (task, _status_code) = index.update_distinct_attribute(json!(DOCUMENT_DISTINCT_KEY)).await; let (task, _status_code) = index.update_distinct_attribute(json!(DOCUMENT_DISTINCT_KEY)).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
fn get_hits(response: &Value) -> Vec<&str> { fn get_hits(response: &Value) -> Vec<&str> {
let hits_array = response["hits"].as_array().unwrap(); let hits_array = response["hits"].as_array().unwrap();
@ -211,7 +211,7 @@ async fn distinct_search_with_pagination_no_ranking() {
let documents = DOCUMENTS.clone(); let documents = DOCUMENTS.clone();
index.add_documents(documents, Some(DOCUMENT_PRIMARY_KEY)).await; index.add_documents(documents, Some(DOCUMENT_PRIMARY_KEY)).await;
let (task, _status_code) = index.update_distinct_attribute(json!(DOCUMENT_DISTINCT_KEY)).await; let (task, _status_code) = index.update_distinct_attribute(json!(DOCUMENT_DISTINCT_KEY)).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
fn get_hits(response: &Value) -> Vec<&str> { fn get_hits(response: &Value) -> Vec<&str> {
let hits_array = response["hits"].as_array().unwrap(); let hits_array = response["hits"].as_array().unwrap();
@ -281,7 +281,7 @@ async fn distinct_at_search_time() {
let documents = NESTED_DOCUMENTS.clone(); let documents = NESTED_DOCUMENTS.clone();
index.add_documents(documents, Some(DOCUMENT_PRIMARY_KEY)).await; index.add_documents(documents, Some(DOCUMENT_PRIMARY_KEY)).await;
let (task, _) = index.update_settings_filterable_attributes(json!(["color.main"])).await; let (task, _) = index.update_settings_filterable_attributes(json!(["color.main"])).await;
let task = index.wait_task(task.uid()).await.succeeded(); let task = server.wait_task(task.uid()).await.succeeded();
snapshot!(task, name: "succeed"); snapshot!(task, name: "succeed");
fn get_hits(response: &Value) -> Vec<String> { fn get_hits(response: &Value) -> Vec<String> {

View File

@ -425,7 +425,7 @@ async fn search_non_filterable_facets() {
let index = server.unique_index(); let index = server.unique_index();
let (response, _code) = index.update_settings(json!({"filterableAttributes": ["title"]})).await; let (response, _code) = index.update_settings(json!({"filterableAttributes": ["title"]})).await;
// Wait for the settings update to complete // Wait for the settings update to complete
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let (response, code) = index.search_post(json!({"facets": ["doggo"]})).await; let (response, code) = index.search_post(json!({"facets": ["doggo"]})).await;
snapshot!(code, @"400 Bad Request"); snapshot!(code, @"400 Bad Request");
@ -456,7 +456,7 @@ async fn search_non_filterable_facets_multiple_filterable() {
let index = server.unique_index(); let index = server.unique_index();
let (response, _code) = let (response, _code) =
index.update_settings(json!({"filterableAttributes": ["title", "genres"]})).await; index.update_settings(json!({"filterableAttributes": ["title", "genres"]})).await;
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let (response, code) = index.search_post(json!({"facets": ["doggo"]})).await; let (response, code) = index.search_post(json!({"facets": ["doggo"]})).await;
snapshot!(code, @"400 Bad Request"); snapshot!(code, @"400 Bad Request");
@ -486,7 +486,7 @@ async fn search_non_filterable_facets_no_filterable() {
let server = Server::new_shared(); let server = Server::new_shared();
let index = server.unique_index(); let index = server.unique_index();
let (response, _code) = index.update_settings(json!({"filterableAttributes": []})).await; let (response, _code) = index.update_settings(json!({"filterableAttributes": []})).await;
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let (response, code) = index.search_post(json!({"facets": ["doggo"]})).await; let (response, code) = index.search_post(json!({"facets": ["doggo"]})).await;
snapshot!(code, @"400 Bad Request"); snapshot!(code, @"400 Bad Request");
@ -517,7 +517,7 @@ async fn search_non_filterable_facets_multiple_facets() {
let index = server.unique_index(); let index = server.unique_index();
let (response, _uid) = let (response, _uid) =
index.update_settings(json!({"filterableAttributes": ["title", "genres"]})).await; index.update_settings(json!({"filterableAttributes": ["title", "genres"]})).await;
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let (response, code) = index.search_post(json!({"facets": ["doggo", "neko"]})).await; let (response, code) = index.search_post(json!({"facets": ["doggo", "neko"]})).await;
snapshot!(code, @"400 Bad Request"); snapshot!(code, @"400 Bad Request");
@ -1001,7 +1001,7 @@ async fn sort_geo_reserved_attribute() {
let index = server.unique_index(); let index = server.unique_index();
let (task, _code) = index.update_settings(json!({"sortableAttributes": ["id"]})).await; let (task, _code) = index.update_settings(json!({"sortableAttributes": ["id"]})).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let expected_response = json!({ let expected_response = json!({
"message": "`_geo` is a reserved keyword and thus can't be used as a sort expression. Use the _geoPoint(latitude, longitude) built-in rule to sort on _geo field coordinates.", "message": "`_geo` is a reserved keyword and thus can't be used as a sort expression. Use the _geoPoint(latitude, longitude) built-in rule to sort on _geo field coordinates.",
@ -1028,7 +1028,7 @@ async fn sort_reserved_attribute() {
let index = server.unique_index(); let index = server.unique_index();
let (task, _code) = index.update_settings(json!({"sortableAttributes": ["id"]})).await; let (task, _code) = index.update_settings(json!({"sortableAttributes": ["id"]})).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let expected_response = json!({ let expected_response = json!({
"message": "`_geoDistance` is a reserved keyword and thus can't be used as a sort expression.", "message": "`_geoDistance` is a reserved keyword and thus can't be used as a sort expression.",
@ -1054,7 +1054,7 @@ async fn sort_unsortable_attribute() {
let server = Server::new_shared(); let server = Server::new_shared();
let index = server.unique_index(); let index = server.unique_index();
let (response, _code) = index.update_settings(json!({"sortableAttributes": ["id"]})).await; let (response, _code) = index.update_settings(json!({"sortableAttributes": ["id"]})).await;
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let expected_response = json!({ let expected_response = json!({
"message": format!("Index `{}`: Attribute `title` is not sortable. Available sortable attributes are: `id`.", index.uid), "message": format!("Index `{}`: Attribute `title` is not sortable. Available sortable attributes are: `id`.", index.uid),
@ -1081,7 +1081,7 @@ async fn sort_invalid_syntax() {
let index = server.unique_index(); let index = server.unique_index();
let (response, _code) = index.update_settings(json!({"sortableAttributes": ["id"]})).await; let (response, _code) = index.update_settings(json!({"sortableAttributes": ["id"]})).await;
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let expected_response = json!({ let expected_response = json!({
"message": "Invalid syntax for the sort parameter: expected expression ending by `:asc` or `:desc`, found `title`.", "message": "Invalid syntax for the sort parameter: expected expression ending by `:asc` or `:desc`, found `title`.",
@ -1112,7 +1112,7 @@ async fn sort_unset_ranking_rule() {
json!({"sortableAttributes": ["title"], "rankingRules": ["proximity", "exactness"]}), json!({"sortableAttributes": ["title"], "rankingRules": ["proximity", "exactness"]}),
) )
.await; .await;
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let expected_response = json!({ let expected_response = json!({
"message": format!("Index `{}`: You must specify where `sort` is listed in the rankingRules setting to use the sort parameter at search time.", index.uid), "message": format!("Index `{}`: You must specify where `sort` is listed in the rankingRules setting to use the sort parameter at search time.", index.uid),
@ -1199,7 +1199,7 @@ async fn distinct_at_search_time() {
let index = server.unique_index(); let index = server.unique_index();
let (response, _code) = let (response, _code) =
index.add_documents(json!([{"id": 1, "color": "Doggo", "machin": "Action"}]), None).await; index.add_documents(json!([{"id": 1, "color": "Doggo", "machin": "Action"}]), None).await;
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let (response, code) = let (response, code) =
index.search_post(json!({"page": 0, "hitsPerPage": 2, "distinct": "doggo.truc"})).await; index.search_post(json!({"page": 0, "hitsPerPage": 2, "distinct": "doggo.truc"})).await;
@ -1214,7 +1214,7 @@ async fn distinct_at_search_time() {
"###); "###);
let (task, _) = index.update_settings_filterable_attributes(json!(["color", "machin"])).await; let (task, _) = index.update_settings_filterable_attributes(json!(["color", "machin"])).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let (response, code) = let (response, code) =
index.search_post(json!({"page": 0, "hitsPerPage": 2, "distinct": "doggo.truc"})).await; index.search_post(json!({"page": 0, "hitsPerPage": 2, "distinct": "doggo.truc"})).await;
@ -1229,7 +1229,7 @@ async fn distinct_at_search_time() {
"###); "###);
let (task, _) = index.update_settings_displayed_attributes(json!(["color"])).await; let (task, _) = index.update_settings_displayed_attributes(json!(["color"])).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let (response, code) = let (response, code) =
index.search_post(json!({"page": 0, "hitsPerPage": 2, "distinct": "doggo.truc"})).await; index.search_post(json!({"page": 0, "hitsPerPage": 2, "distinct": "doggo.truc"})).await;

View File

@ -50,11 +50,11 @@ async fn test_settings_documents_indexing_swapping_and_facet_search(
let (task, code) = index.add_documents(documents.clone(), None).await; let (task, code) = index.add_documents(documents.clone(), None).await;
assert_eq!(code, 202, "{}", task); assert_eq!(code, 202, "{}", task);
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let (task, code) = index.update_settings(settings.clone()).await; let (task, code) = index.update_settings(settings.clone()).await;
assert_eq!(code, 202, "{}", task); assert_eq!(code, 202, "{}", task);
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let (response, code) = index.facet_search(query.clone()).await; let (response, code) = index.facet_search(query.clone()).await;
insta::allow_duplicates! { insta::allow_duplicates! {
@ -70,11 +70,11 @@ async fn test_settings_documents_indexing_swapping_and_facet_search(
let (task, code) = index.update_settings(settings.clone()).await; let (task, code) = index.update_settings(settings.clone()).await;
assert_eq!(code, 202, "{}", task); assert_eq!(code, 202, "{}", task);
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let (task, code) = index.add_documents(documents.clone(), None).await; let (task, code) = index.add_documents(documents.clone(), None).await;
assert_eq!(code, 202, "{}", task); assert_eq!(code, 202, "{}", task);
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let (response, code) = index.facet_search(query.clone()).await; let (response, code) = index.facet_search(query.clone()).await;
insta::allow_duplicates! { insta::allow_duplicates! {
@ -94,7 +94,7 @@ async fn simple_facet_search() {
let documents = DOCUMENTS.clone(); let documents = DOCUMENTS.clone();
index.update_settings_filterable_attributes(json!(["genres"])).await; index.update_settings_filterable_attributes(json!(["genres"])).await;
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let (response, code) = let (response, code) =
index.facet_search(json!({"facetName": "genres", "facetQuery": "a"})).await; index.facet_search(json!({"facetName": "genres", "facetQuery": "a"})).await;
@ -207,10 +207,10 @@ async fn simple_facet_search_on_movies() {
let (response, code) = let (response, code) =
index.update_settings_filterable_attributes(json!(["genres", "color"])).await; index.update_settings_filterable_attributes(json!(["genres", "color"])).await;
assert_eq!(202, code, "{response:?}"); assert_eq!(202, code, "{response:?}");
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let (response, _code) = index.add_documents(documents, None).await; let (response, _code) = index.add_documents(documents, None).await;
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let (response, code) = let (response, code) =
index.facet_search(json!({"facetQuery": "", "facetName": "genres", "q": "" })).await; index.facet_search(json!({"facetQuery": "", "facetName": "genres", "q": "" })).await;
@ -228,7 +228,7 @@ async fn advanced_facet_search() {
index.update_settings_filterable_attributes(json!(["genres"])).await; index.update_settings_filterable_attributes(json!(["genres"])).await;
index.update_settings_typo_tolerance(json!({ "enabled": false })).await; index.update_settings_typo_tolerance(json!({ "enabled": false })).await;
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let (response, code) = let (response, code) =
index.facet_search(json!({"facetName": "genres", "facetQuery": "adventre"})).await; index.facet_search(json!({"facetName": "genres", "facetQuery": "adventre"})).await;
@ -252,7 +252,7 @@ async fn more_advanced_facet_search() {
index.update_settings_filterable_attributes(json!(["genres"])).await; index.update_settings_filterable_attributes(json!(["genres"])).await;
index.update_settings_typo_tolerance(json!({ "disableOnWords": ["adventre"] })).await; index.update_settings_typo_tolerance(json!({ "disableOnWords": ["adventre"] })).await;
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let (response, code) = let (response, code) =
index.facet_search(json!({"facetName": "genres", "facetQuery": "adventre"})).await; index.facet_search(json!({"facetName": "genres", "facetQuery": "adventre"})).await;
@ -276,7 +276,7 @@ async fn simple_facet_search_with_max_values() {
index.update_settings_faceting(json!({ "maxValuesPerFacet": 1 })).await; index.update_settings_faceting(json!({ "maxValuesPerFacet": 1 })).await;
index.update_settings_filterable_attributes(json!(["genres"])).await; index.update_settings_filterable_attributes(json!(["genres"])).await;
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let (response, code) = let (response, code) =
index.facet_search(json!({"facetName": "genres", "facetQuery": "a"})).await; index.facet_search(json!({"facetName": "genres", "facetQuery": "a"})).await;
@ -298,7 +298,7 @@ async fn simple_facet_search_by_count_with_max_values() {
.await; .await;
index.update_settings_filterable_attributes(json!(["genres"])).await; index.update_settings_filterable_attributes(json!(["genres"])).await;
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let (response, code) = let (response, code) =
index.facet_search(json!({"facetName": "genres", "facetQuery": "a"})).await; index.facet_search(json!({"facetName": "genres", "facetQuery": "a"})).await;
@ -314,7 +314,7 @@ async fn non_filterable_facet_search_error() {
let documents = DOCUMENTS.clone(); let documents = DOCUMENTS.clone();
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let (response, code) = let (response, code) =
index.facet_search(json!({"facetName": "genres", "facetQuery": "a"})).await; index.facet_search(json!({"facetName": "genres", "facetQuery": "a"})).await;
@ -333,7 +333,7 @@ async fn facet_search_dont_support_words() {
let documents = DOCUMENTS.clone(); let documents = DOCUMENTS.clone();
index.update_settings_filterable_attributes(json!(["genres"])).await; index.update_settings_filterable_attributes(json!(["genres"])).await;
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let (response, code) = let (response, code) =
index.facet_search(json!({"facetName": "genres", "facetQuery": "words"})).await; index.facet_search(json!({"facetName": "genres", "facetQuery": "words"})).await;
@ -351,7 +351,7 @@ async fn simple_facet_search_with_sort_by_count() {
index.update_settings_faceting(json!({ "sortFacetValuesBy": { "*": "count" } })).await; index.update_settings_faceting(json!({ "sortFacetValuesBy": { "*": "count" } })).await;
index.update_settings_filterable_attributes(json!(["genres"])).await; index.update_settings_filterable_attributes(json!(["genres"])).await;
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let (response, code) = let (response, code) =
index.facet_search(json!({"facetName": "genres", "facetQuery": "a"})).await; index.facet_search(json!({"facetName": "genres", "facetQuery": "a"})).await;
@ -370,7 +370,7 @@ async fn add_documents_and_deactivate_facet_search() {
let documents = DOCUMENTS.clone(); let documents = DOCUMENTS.clone();
let (response, _code) = index.add_documents(documents, None).await; let (response, _code) = index.add_documents(documents, None).await;
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let (response, code) = index let (response, code) = index
.update_settings(json!({ .update_settings(json!({
"facetSearch": false, "facetSearch": false,
@ -378,7 +378,7 @@ async fn add_documents_and_deactivate_facet_search() {
})) }))
.await; .await;
assert_eq!("202", code.as_str(), "{response:?}"); assert_eq!("202", code.as_str(), "{response:?}");
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let (response, code) = let (response, code) =
index.facet_search(json!({"facetName": "genres", "facetQuery": "a"})).await; index.facet_search(json!({"facetName": "genres", "facetQuery": "a"})).await;
@ -406,10 +406,10 @@ async fn deactivate_facet_search_and_add_documents() {
})) }))
.await; .await;
assert_eq!("202", code.as_str(), "{response:?}"); assert_eq!("202", code.as_str(), "{response:?}");
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let documents = DOCUMENTS.clone(); let documents = DOCUMENTS.clone();
let (response, _code) = index.add_documents(documents, None).await; let (response, _code) = index.add_documents(documents, None).await;
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let (response, code) = let (response, code) =
index.facet_search(json!({"facetName": "genres", "facetQuery": "a"})).await; index.facet_search(json!({"facetName": "genres", "facetQuery": "a"})).await;
@ -437,10 +437,10 @@ async fn deactivate_facet_search_add_documents_and_activate_facet_search() {
})) }))
.await; .await;
assert_eq!("202", code.as_str(), "{response:?}"); assert_eq!("202", code.as_str(), "{response:?}");
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let documents = DOCUMENTS.clone(); let documents = DOCUMENTS.clone();
let (response, _code) = index.add_documents(documents, None).await; let (response, _code) = index.add_documents(documents, None).await;
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let (response, code) = index let (response, code) = index
.update_settings(json!({ .update_settings(json!({
@ -448,7 +448,7 @@ async fn deactivate_facet_search_add_documents_and_activate_facet_search() {
})) }))
.await; .await;
assert_eq!("202", code.as_str(), "{response:?}"); assert_eq!("202", code.as_str(), "{response:?}");
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let (response, code) = let (response, code) =
index.facet_search(json!({"facetName": "genres", "facetQuery": "a"})).await; index.facet_search(json!({"facetName": "genres", "facetQuery": "a"})).await;
@ -469,10 +469,10 @@ async fn deactivate_facet_search_add_documents_and_reset_facet_search() {
})) }))
.await; .await;
assert_eq!("202", code.as_str(), "{response:?}"); assert_eq!("202", code.as_str(), "{response:?}");
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let documents = DOCUMENTS.clone(); let documents = DOCUMENTS.clone();
let (response, _code) = index.add_documents(documents, None).await; let (response, _code) = index.add_documents(documents, None).await;
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let (response, code) = index let (response, code) = index
.update_settings(json!({ .update_settings(json!({
@ -480,7 +480,7 @@ async fn deactivate_facet_search_add_documents_and_reset_facet_search() {
})) }))
.await; .await;
assert_eq!("202", code.as_str(), "{response:?}"); assert_eq!("202", code.as_str(), "{response:?}");
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let (response, code) = let (response, code) =
index.facet_search(json!({"facetName": "genres", "facetQuery": "a"})).await; index.facet_search(json!({"facetName": "genres", "facetQuery": "a"})).await;
@ -920,13 +920,13 @@ async fn distinct_facet_search_on_movies() {
let (response, code) = let (response, code) =
index.update_settings_filterable_attributes(json!(["genres", "color"])).await; index.update_settings_filterable_attributes(json!(["genres", "color"])).await;
assert_eq!(202, code, "{response:?}"); assert_eq!(202, code, "{response:?}");
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let (response, code) = index.update_settings_distinct_attribute(json!("color")).await; let (response, code) = index.update_settings_distinct_attribute(json!("color")).await;
assert_eq!(202, code, "{response:?}"); assert_eq!(202, code, "{response:?}");
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let (response, _code) = index.add_documents(documents, None).await; let (response, _code) = index.add_documents(documents, None).await;
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let (response, code) = let (response, code) =
index.facet_search(json!({"facetQuery": "blob", "facetName": "genres", "q": "" })).await; index.facet_search(json!({"facetQuery": "blob", "facetName": "genres", "q": "" })).await;

View File

@ -90,7 +90,7 @@ async fn search_with_contains_filter() {
let documents = DOCUMENTS.clone(); let documents = DOCUMENTS.clone();
let (request, _code) = index.add_documents(documents, None).await; let (request, _code) = index.add_documents(documents, None).await;
index.wait_task(request.uid()).await.succeeded(); server.wait_task(request.uid()).await.succeeded();
let (response, code) = index let (response, code) = index
.search_post(json!({ .search_post(json!({
@ -257,7 +257,7 @@ async fn search_with_pattern_filter_settings_scenario_1() {
let (task, code) = index.add_documents(NESTED_DOCUMENTS.clone(), None).await; let (task, code) = index.add_documents(NESTED_DOCUMENTS.clone(), None).await;
assert_eq!(code, 202, "{task}"); assert_eq!(code, 202, "{task}");
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let (task, code) = index let (task, code) = index
.update_settings(json!({"filterableAttributes": [{ .update_settings(json!({"filterableAttributes": [{
@ -269,7 +269,7 @@ async fn search_with_pattern_filter_settings_scenario_1() {
}]})) }]}))
.await; .await;
assert_eq!(code, 202, "{task}"); assert_eq!(code, 202, "{task}");
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
// Check if the Equality filter works // Check if the Equality filter works
index index
@ -334,7 +334,7 @@ async fn search_with_pattern_filter_settings_scenario_1() {
}]})) }]}))
.await; .await;
assert_eq!(code, 202, "{task}"); assert_eq!(code, 202, "{task}");
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
// Check if the Equality filter works // Check if the Equality filter works
index index
@ -445,7 +445,7 @@ async fn search_with_pattern_filter_settings_scenario_1() {
}]})) }]}))
.await; .await;
assert_eq!(code, 202, "{task}"); assert_eq!(code, 202, "{task}");
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
// Check if the Equality filter returns an error // Check if the Equality filter returns an error
index index
@ -544,7 +544,7 @@ async fn search_with_pattern_filter_settings_scenario_1() {
}]})) }]}))
.await; .await;
assert_eq!(code, 202, "{task}"); assert_eq!(code, 202, "{task}");
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
// Check if the Equality filter works // Check if the Equality filter works
index index

View File

@ -26,7 +26,7 @@ async fn search_formatted_from_sdk() {
{ "id": 42, "title": "The Hitchhiker's Guide to the Galaxy" } { "id": 42, "title": "The Hitchhiker's Guide to the Galaxy" }
]); ]);
let (response, _) = index.add_documents(documents, None).await; let (response, _) = index.add_documents(documents, None).await;
index.wait_task(response.uid()).await; server.wait_task(response.uid()).await;
index index
.search( .search(
@ -65,7 +65,7 @@ async fn formatted_contain_wildcard() {
let documents = NESTED_DOCUMENTS.clone(); let documents = NESTED_DOCUMENTS.clone();
let (response, _) = index.add_documents(documents, None).await; let (response, _) = index.add_documents(documents, None).await;
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
index.search(json!({ "q": "pésti", "attributesToRetrieve": ["father", "mother"], "attributesToHighlight": ["father", "mother", "*"], "attributesToCrop": ["doggos"], "showMatchesPosition": true }), index.search(json!({ "q": "pésti", "attributesToRetrieve": ["father", "mother"], "attributesToHighlight": ["father", "mother", "*"], "attributesToCrop": ["doggos"], "showMatchesPosition": true }),
|response, code| |response, code|
@ -398,7 +398,7 @@ async fn displayedattr_2_smol() {
let documents = NESTED_DOCUMENTS.clone(); let documents = NESTED_DOCUMENTS.clone();
let (response, _) = index.add_documents(documents, None).await; let (response, _) = index.add_documents(documents, None).await;
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
index index
.search(json!({ "attributesToRetrieve": ["father", "id"], "attributesToHighlight": ["mother"], "attributesToCrop": ["cattos"] }), .search(json!({ "attributesToRetrieve": ["father", "id"], "attributesToHighlight": ["mother"], "attributesToCrop": ["cattos"] }),
@ -596,7 +596,7 @@ async fn test_cjk_highlight() {
{ "id": 1, "title": "大卫到了扫罗那里" }, { "id": 1, "title": "大卫到了扫罗那里" },
]); ]);
let (response, _) = index.add_documents(documents, None).await; let (response, _) = index.add_documents(documents, None).await;
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
index index
.search(json!({"q": "", "attributesToHighlight": ["title"]}), |response, code| { .search(json!({"q": "", "attributesToHighlight": ["title"]}), |response, code| {

View File

@ -17,11 +17,11 @@ async fn index_with_documents_user_provided<'a>(
"dimensions": 2}}} )) "dimensions": 2}}} ))
.await; .await;
assert_eq!(202, code, "{response:?}"); assert_eq!(202, code, "{response:?}");
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let (response, code) = index.add_documents(documents.clone(), None).await; let (response, code) = index.add_documents(documents.clone(), None).await;
assert_eq!(202, code, "{response:?}"); assert_eq!(202, code, "{response:?}");
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
index index
} }
@ -37,11 +37,11 @@ async fn index_with_documents_hf<'a>(server: &'a Server<Shared>, documents: &Val
}}} )) }}} ))
.await; .await;
assert_eq!(202, code, "{response:?}"); assert_eq!(202, code, "{response:?}");
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let (response, code) = index.add_documents(documents.clone(), None).await; let (response, code) = index.add_documents(documents.clone(), None).await;
assert_eq!(202, code, "{response:?}"); assert_eq!(202, code, "{response:?}");
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
index index
} }
@ -543,7 +543,7 @@ async fn distinct_is_applied() {
let (response, code) = index.update_settings(json!({ "distinctAttribute": "distinct" } )).await; let (response, code) = index.update_settings(json!({ "distinctAttribute": "distinct" } )).await;
assert_eq!(202, code, "{:?}", response); assert_eq!(202, code, "{:?}", response);
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
// pure keyword // pure keyword
let (response, code) = index let (response, code) = index
@ -633,7 +633,7 @@ async fn retrieve_vectors() {
.update_settings(json!({ "displayedAttributes": ["id", "title", "desc", "_vectors"]} )) .update_settings(json!({ "displayedAttributes": ["id", "title", "desc", "_vectors"]} ))
.await; .await;
assert_eq!(202, code, "{response:?}"); assert_eq!(202, code, "{response:?}");
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let (response, code) = index let (response, code) = index
.search_post( .search_post(
@ -683,7 +683,7 @@ async fn retrieve_vectors() {
let (response, code) = let (response, code) =
index.update_settings(json!({ "displayedAttributes": ["id", "title", "desc"]} )).await; index.update_settings(json!({ "displayedAttributes": ["id", "title", "desc"]} )).await;
assert_eq!(202, code, "{response:?}"); assert_eq!(202, code, "{response:?}");
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let (response, code) = index let (response, code) = index
.search_post( .search_post(

View File

@ -99,7 +99,7 @@ async fn simple_search() {
) )
.await; .await;
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
// english // english
index index
@ -215,7 +215,7 @@ async fn force_locales() {
} }
"###); "###);
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
// chinese detection // chinese detection
index index
@ -293,7 +293,7 @@ async fn force_locales_with_pattern() {
} }
"###); "###);
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
// chinese detection // chinese detection
index index
@ -369,7 +369,7 @@ async fn force_locales_with_pattern_nested() {
} }
"###); "###);
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
// chinese // chinese
index index
@ -444,7 +444,7 @@ async fn force_different_locales_with_pattern() {
} }
"###); "###);
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
// force chinese // force chinese
index index
@ -522,7 +522,7 @@ async fn auto_infer_locales_at_search_with_attributes_to_search_on() {
} }
"###); "###);
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
// auto infer any language // auto infer any language
index index
@ -596,7 +596,7 @@ async fn auto_infer_locales_at_search() {
} }
"###); "###);
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
index index
.search( .search(
@ -695,7 +695,7 @@ async fn force_different_locales_with_pattern_nested() {
} }
"###); "###);
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
// chinese // chinese
index index
@ -773,7 +773,7 @@ async fn settings_change() {
let documents = NESTED_DOCUMENTS.clone(); let documents = NESTED_DOCUMENTS.clone();
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let (response, _) = index let (response, _) = index
.update_settings(json!({ .update_settings(json!({
"searchableAttributes": ["document_en", "document_ja", "document_zh"], "searchableAttributes": ["document_en", "document_ja", "document_zh"],
@ -792,7 +792,7 @@ async fn settings_change() {
"enqueuedAt": "[date]" "enqueuedAt": "[date]"
} }
"###); "###);
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
// chinese // chinese
index index
@ -855,7 +855,7 @@ async fn settings_change() {
"enqueuedAt": "[date]" "enqueuedAt": "[date]"
} }
"###); "###);
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
// chinese // chinese
index index
@ -910,7 +910,7 @@ async fn invalid_locales() {
) )
.await; .await;
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let (response, code) = index.search_post(json!({"q": "Atta", "locales": ["invalid"]})).await; let (response, code) = index.search_post(json!({"q": "Atta", "locales": ["invalid"]})).await;
snapshot!(code, @"400 Bad Request"); snapshot!(code, @"400 Bad Request");
@ -1028,7 +1028,7 @@ async fn simple_facet_search() {
} }
"###); "###);
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let (response, _) = index let (response, _) = index
.facet_search(json!({"facetName": "name_zh", "facetQuery": "進撃", "locales": ["cmn"]})) .facet_search(json!({"facetName": "name_zh", "facetQuery": "進撃", "locales": ["cmn"]}))
@ -1090,7 +1090,7 @@ async fn facet_search_with_localized_attributes() {
} }
"###); "###);
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let (response, _) = index let (response, _) = index
.facet_search(json!({"facetName": "name_zh", "facetQuery": "进击", "locales": ["cmn"]})) .facet_search(json!({"facetName": "name_zh", "facetQuery": "进击", "locales": ["cmn"]}))
@ -1159,7 +1159,7 @@ async fn swedish_search() {
] ]
})) }))
.await; .await;
index.wait_task(_response.uid()).await.succeeded(); server.wait_task(_response.uid()).await.succeeded();
// infer swedish // infer swedish
index index
@ -1280,7 +1280,7 @@ async fn german_search() {
] ]
})) }))
.await; .await;
index.wait_task(_response.uid()).await.succeeded(); server.wait_task(_response.uid()).await.succeeded();
// infer swedish // infer swedish
index index

View File

@ -9,7 +9,7 @@ async fn index_with_documents<'a>(server: &'a Server<Shared>, documents: &Value)
let index = server.unique_index(); let index = server.unique_index();
let (task, _status_code) = index.add_documents(documents.clone(), None).await; let (task, _status_code) = index.add_documents(documents.clone(), None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
index index
} }

View File

@ -38,11 +38,11 @@ async fn test_settings_documents_indexing_swapping_and_search(
let (task, code) = index.add_documents(documents.clone(), None).await; let (task, code) = index.add_documents(documents.clone(), None).await;
assert_eq!(code, 202, "{task}"); assert_eq!(code, 202, "{task}");
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let (task, code) = index.update_settings(settings.clone()).await; let (task, code) = index.update_settings(settings.clone()).await;
assert_eq!(code, 202, "{task}"); assert_eq!(code, 202, "{task}");
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
index.search(query.clone(), test.clone()).await; index.search(query.clone(), test.clone()).await;
@ -51,11 +51,11 @@ async fn test_settings_documents_indexing_swapping_and_search(
let (task, code) = index.update_settings(settings.clone()).await; let (task, code) = index.update_settings(settings.clone()).await;
assert_eq!(code, 202, "{task}"); assert_eq!(code, 202, "{task}");
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let (task, code) = index.add_documents(documents.clone(), None).await; let (task, code) = index.add_documents(documents.clone(), None).await;
assert_eq!(code, 202, "{task}"); assert_eq!(code, 202, "{task}");
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
index.search(query.clone(), test.clone()).await; index.search(query.clone(), test.clone()).await;
} }
@ -104,7 +104,7 @@ async fn bug_5547() {
let server = Server::new_shared(); let server = Server::new_shared();
let index = server.unique_index(); let index = server.unique_index();
let (response, _code) = index.create(None).await; let (response, _code) = index.create(None).await;
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let mut documents = Vec::new(); let mut documents = Vec::new();
for i in 0..65_535 { for i in 0..65_535 {
@ -112,7 +112,7 @@ async fn bug_5547() {
} }
let (response, _code) = index.add_documents(json!(documents), Some("id")).await; let (response, _code) = index.add_documents(json!(documents), Some("id")).await;
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let (response, code) = index.search_post(json!({"q": "title"})).await; let (response, code) = index.search_post(json!({"q": "title"})).await;
assert_eq!(code, 200); assert_eq!(code, 200);
snapshot!(response["hits"], @r###"[{"id":0,"title":"title0"},{"id":1,"title":"title1"},{"id":10,"title":"title10"},{"id":100,"title":"title100"},{"id":101,"title":"title101"},{"id":102,"title":"title102"},{"id":103,"title":"title103"},{"id":104,"title":"title104"},{"id":105,"title":"title105"},{"id":106,"title":"title106"},{"id":107,"title":"title107"},{"id":108,"title":"title108"},{"id":1000,"title":"title1000"},{"id":1001,"title":"title1001"},{"id":1002,"title":"title1002"},{"id":1003,"title":"title1003"},{"id":1004,"title":"title1004"},{"id":1005,"title":"title1005"},{"id":1006,"title":"title1006"},{"id":1007,"title":"title1007"}]"###); snapshot!(response["hits"], @r###"[{"id":0,"title":"title0"},{"id":1,"title":"title1"},{"id":10,"title":"title10"},{"id":100,"title":"title100"},{"id":101,"title":"title101"},{"id":102,"title":"title102"},{"id":103,"title":"title103"},{"id":104,"title":"title104"},{"id":105,"title":"title105"},{"id":106,"title":"title106"},{"id":107,"title":"title107"},{"id":108,"title":"title108"},{"id":1000,"title":"title1000"},{"id":1001,"title":"title1001"},{"id":1002,"title":"title1002"},{"id":1003,"title":"title1003"},{"id":1004,"title":"title1004"},{"id":1005,"title":"title1005"},{"id":1006,"title":"title1006"},{"id":1007,"title":"title1007"}]"###);
@ -131,7 +131,7 @@ async fn search_with_stop_word() {
let documents = DOCUMENTS.clone(); let documents = DOCUMENTS.clone();
let (task, _code) = index.add_documents(documents, None).await; let (task, _code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
// prefix search // prefix search
index index
@ -196,7 +196,7 @@ async fn search_with_typo_settings() {
let documents = DOCUMENTS.clone(); let documents = DOCUMENTS.clone();
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
index index
.search(json!({"q": "287947" }), |response, code| { .search(json!({"q": "287947" }), |response, code| {
@ -228,7 +228,7 @@ async fn phrase_search_with_stop_word() {
let documents = DOCUMENTS.clone(); let documents = DOCUMENTS.clone();
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
index index
.search(json!({"q": "how \"to\" train \"the" }), |response, code| { .search(json!({"q": "how \"to\" train \"the" }), |response, code| {
@ -308,11 +308,11 @@ async fn negative_special_cases_search() {
let documents = DOCUMENTS.clone(); let documents = DOCUMENTS.clone();
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let (task, _status_code) = let (task, _status_code) =
index.update_settings(json!({"synonyms": { "escape": ["gläss"] }})).await; index.update_settings(json!({"synonyms": { "escape": ["gläss"] }})).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
// There is a synonym for escape -> glass but we don't want "escape", only the derivates: glass // There is a synonym for escape -> glass but we don't want "escape", only the derivates: glass
index index
@ -338,7 +338,7 @@ async fn test_kanji_language_detection() {
{ "id": 2, "title": "הַשּׁוּעָל הַמָּהִיר (״הַחוּם״) לֹא יָכוֹל לִקְפֹּץ 9.94 מֶטְרִים, נָכוֹן? ברר, 1.5°C- בַּחוּץ!" } { "id": 2, "title": "הַשּׁוּעָל הַמָּהִיר (״הַחוּם״) לֹא יָכוֹל לִקְפֹּץ 9.94 מֶטְרִים, נָכוֹן? ברר, 1.5°C- בַּחוּץ!" }
]); ]);
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
index index
.search(json!({"q": "東京"}), |response, code| { .search(json!({"q": "東京"}), |response, code| {
@ -361,10 +361,10 @@ async fn test_thai_language() {
{ "id": 2, "title": "สบู่สมุนไพรฝางแดงผสมว่านหางจรเข้ 100 กรัม จำนวน 6 ก้อน" } { "id": 2, "title": "สบู่สมุนไพรฝางแดงผสมว่านหางจรเข้ 100 กรัม จำนวน 6 ก้อน" }
]); ]);
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let (task, _status_code) = index.update_settings(json!({"rankingRules": ["exactness"]})).await; let (task, _status_code) = index.update_settings(json!({"rankingRules": ["exactness"]})).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
index index
.search(json!({"q": "สบู"}), |response, code| { .search(json!({"q": "สบู"}), |response, code| {
@ -586,7 +586,7 @@ async fn displayed_attributes() {
let documents = DOCUMENTS.clone(); let documents = DOCUMENTS.clone();
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let (response, code) = let (response, code) =
index.search_post(json!({ "attributesToRetrieve": ["title", "id"] })).await; index.search_post(json!({ "attributesToRetrieve": ["title", "id"] })).await;
@ -601,7 +601,7 @@ async fn placeholder_search_is_hard_limited() {
let documents: Vec<_> = (0..1200).map(|i| json!({ "id": i, "text": "I am unique!" })).collect(); let documents: Vec<_> = (0..1200).map(|i| json!({ "id": i, "text": "I am unique!" })).collect();
let (task, _status_code) = index.add_documents(documents.into(), None).await; let (task, _status_code) = index.add_documents(documents.into(), None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
index index
.search( .search(
@ -630,7 +630,7 @@ async fn placeholder_search_is_hard_limited() {
let (task, _status_code) = let (task, _status_code) =
index.update_settings(json!({ "pagination": { "maxTotalHits": 10_000 } })).await; index.update_settings(json!({ "pagination": { "maxTotalHits": 10_000 } })).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
index index
.search( .search(
@ -665,7 +665,7 @@ async fn search_is_hard_limited() {
let documents: Vec<_> = (0..1200).map(|i| json!({ "id": i, "text": "I am unique!" })).collect(); let documents: Vec<_> = (0..1200).map(|i| json!({ "id": i, "text": "I am unique!" })).collect();
let (task, _status_code) = index.add_documents(documents.into(), None).await; let (task, _status_code) = index.add_documents(documents.into(), None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
index index
.search( .search(
@ -696,7 +696,7 @@ async fn search_is_hard_limited() {
let (task, _status_code) = let (task, _status_code) =
index.update_settings(json!({ "pagination": { "maxTotalHits": 10_000 } })).await; index.update_settings(json!({ "pagination": { "maxTotalHits": 10_000 } })).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
index index
.search( .search(
@ -735,7 +735,7 @@ async fn faceting_max_values_per_facet() {
let documents: Vec<_> = (0..10_000).map(|id| json!({ "id": id, "number": id * 10 })).collect(); let documents: Vec<_> = (0..10_000).map(|id| json!({ "id": id, "number": id * 10 })).collect();
let (task, _status_code) = index.add_documents(json!(documents), None).await; let (task, _status_code) = index.add_documents(json!(documents), None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
index index
.search( .search(
@ -752,7 +752,7 @@ async fn faceting_max_values_per_facet() {
let (task, _status_code) = let (task, _status_code) =
index.update_settings(json!({ "faceting": { "maxValuesPerFacet": 10_000 } })).await; index.update_settings(json!({ "faceting": { "maxValuesPerFacet": 10_000 } })).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
index index
.search( .search(
@ -1033,7 +1033,7 @@ async fn test_degraded_score_details() {
index.add_documents(json!(documents), None).await; index.add_documents(json!(documents), None).await;
// We can't really use anything else than 0ms here; otherwise, the test will get flaky. // We can't really use anything else than 0ms here; otherwise, the test will get flaky.
let (res, _code) = index.update_settings(json!({ "searchCutoffMs": 0 })).await; let (res, _code) = index.update_settings(json!({ "searchCutoffMs": 0 })).await;
index.wait_task(res.uid()).await.succeeded(); server.wait_task(res.uid()).await.succeeded();
index index
.search( .search(
@ -1126,7 +1126,7 @@ async fn camelcased_words() {
{ "id": 4, "title": "testab" }, { "id": 4, "title": "testab" },
]); ]);
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
index index
.search(json!({"q": "deLonghi"}), |response, code| { .search(json!({"q": "deLonghi"}), |response, code| {
@ -1345,12 +1345,12 @@ async fn simple_search_with_strange_synonyms() {
let (task, _status_code) = let (task, _status_code) =
index.update_settings(json!({ "synonyms": {"&": ["to"], "to": ["&"]} })).await; index.update_settings(json!({ "synonyms": {"&": ["to"], "to": ["&"]} })).await;
let r = index.wait_task(task.uid()).await.succeeded(); let r = server.wait_task(task.uid()).await.succeeded();
snapshot!(r["status"], @r###""succeeded""###); snapshot!(r["status"], @r###""succeeded""###);
let documents = DOCUMENTS.clone(); let documents = DOCUMENTS.clone();
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
index index
.search(json!({"q": "How to train"}), |response, code| { .search(json!({"q": "How to train"}), |response, code| {
@ -1416,11 +1416,11 @@ async fn change_attributes_settings() {
let documents = NESTED_DOCUMENTS.clone(); let documents = NESTED_DOCUMENTS.clone();
let (task, _status_code) = index.add_documents(json!(documents), None).await; let (task, _status_code) = index.add_documents(json!(documents), None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let (task,_status_code) = let (task,_status_code) =
index.update_settings(json!({ "searchableAttributes": ["father", "mother", "doggos"], "filterableAttributes": ["doggos"] })).await; index.update_settings(json!({ "searchableAttributes": ["father", "mother", "doggos"], "filterableAttributes": ["doggos"] })).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
// search // search
index index
@ -1923,7 +1923,7 @@ async fn change_facet_casing() {
})) }))
.await; .await;
assert_eq!("202", code.as_str(), "{:?}", response); assert_eq!("202", code.as_str(), "{:?}", response);
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let (response, _code) = index let (response, _code) = index
.add_documents( .add_documents(
@ -1936,7 +1936,7 @@ async fn change_facet_casing() {
None, None,
) )
.await; .await;
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let (response, _code) = index let (response, _code) = index
.add_documents( .add_documents(
@ -1949,7 +1949,7 @@ async fn change_facet_casing() {
None, None,
) )
.await; .await;
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
index index
.search(json!({ "facets": ["dog"] }), |response, code| { .search(json!({ "facets": ["dog"] }), |response, code| {
@ -2062,7 +2062,7 @@ async fn simple_search_changing_unrelated_settings() {
let documents = DOCUMENTS.clone(); let documents = DOCUMENTS.clone();
let (task, _status_code) = index.add_documents(documents, None).await; let (task, _status_code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
index index
.search(json!({"q": "Dragon"}), |response, code| { .search(json!({"q": "Dragon"}), |response, code| {
@ -2084,7 +2084,7 @@ async fn simple_search_changing_unrelated_settings() {
let (task, _status_code) = let (task, _status_code) =
index.update_settings(json!({ "filterableAttributes": ["title"] })).await; index.update_settings(json!({ "filterableAttributes": ["title"] })).await;
let r = index.wait_task(task.uid()).await.succeeded(); let r = server.wait_task(task.uid()).await.succeeded();
snapshot!(r["status"], @r###""succeeded""###); snapshot!(r["status"], @r###""succeeded""###);
index index
@ -2106,7 +2106,7 @@ async fn simple_search_changing_unrelated_settings() {
.await; .await;
let (task, _status_code) = index.update_settings(json!({ "filterableAttributes": [] })).await; let (task, _status_code) = index.update_settings(json!({ "filterableAttributes": [] })).await;
let r = index.wait_task(task.uid()).await.succeeded(); let r = server.wait_task(task.uid()).await.succeeded();
snapshot!(r["status"], @r###""succeeded""###); snapshot!(r["status"], @r###""succeeded""###);
index index

View File

@ -21,7 +21,7 @@ pub async fn shared_movies_index() -> &'static Index<'static, Shared> {
let documents = DOCUMENTS.clone(); let documents = DOCUMENTS.clone();
let (response, _code) = movies_index.add_documents(documents, None).await; let (response, _code) = movies_index.add_documents(documents, None).await;
movies_index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let (value, _) = movies_index let (value, _) = movies_index
.update_settings(json!({ .update_settings(json!({
@ -37,7 +37,7 @@ pub async fn shared_movies_index() -> &'static Index<'static, Shared> {
] ]
})) }))
.await; .await;
movies_index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
movies_index.to_shared() movies_index.to_shared()
}) })
.await .await
@ -52,7 +52,7 @@ pub async fn shared_batman_index() -> &'static Index<'static, Shared> {
let documents = SCORE_DOCUMENTS.clone(); let documents = SCORE_DOCUMENTS.clone();
let (response, _code) = batman_index.add_documents(documents, None).await; let (response, _code) = batman_index.add_documents(documents, None).await;
batman_index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
let (value, _) = batman_index let (value, _) = batman_index
.update_settings(json!({ .update_settings(json!({
@ -68,7 +68,7 @@ pub async fn shared_batman_index() -> &'static Index<'static, Shared> {
] ]
})) }))
.await; .await;
batman_index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
batman_index.to_shared() batman_index.to_shared()
}) })
.await .await
@ -1085,14 +1085,14 @@ async fn federation_filter() {
let documents = FRUITS_DOCUMENTS.clone(); let documents = FRUITS_DOCUMENTS.clone();
let (value, _) = index.add_documents(documents, None).await; let (value, _) = index.add_documents(documents, None).await;
index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
let (value, _) = index let (value, _) = index
.update_settings( .update_settings(
json!({"searchableAttributes": ["name"], "filterableAttributes": ["BOOST"]}), json!({"searchableAttributes": ["name"], "filterableAttributes": ["BOOST"]}),
) )
.await; .await;
index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
let (response, code) = server let (response, code) = server
.multi_search(json!({"federation": {}, "queries": [ .multi_search(json!({"federation": {}, "queries": [
@ -1152,7 +1152,7 @@ async fn federation_sort_same_indexes_same_criterion_same_direction() {
let documents = NESTED_DOCUMENTS.clone(); let documents = NESTED_DOCUMENTS.clone();
let (value, _) = index.add_documents(documents, None).await; let (value, _) = index.add_documents(documents, None).await;
index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
let (value, _) = index let (value, _) = index
.update_settings(json!({ .update_settings(json!({
@ -1167,7 +1167,7 @@ async fn federation_sort_same_indexes_same_criterion_same_direction() {
] ]
})) }))
.await; .await;
index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
// two identical placeholder searches should have all results from the first query // two identical placeholder searches should have all results from the first query
let (response, code) = server let (response, code) = server
@ -1365,7 +1365,7 @@ async fn federation_sort_same_indexes_same_criterion_opposite_direction() {
let documents = NESTED_DOCUMENTS.clone(); let documents = NESTED_DOCUMENTS.clone();
let (value, _) = index.add_documents(documents, None).await; let (value, _) = index.add_documents(documents, None).await;
index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
let (value, _) = index let (value, _) = index
.update_settings(json!({ .update_settings(json!({
@ -1380,7 +1380,7 @@ async fn federation_sort_same_indexes_same_criterion_opposite_direction() {
] ]
})) }))
.await; .await;
index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
// two identical placeholder searches should have all results from the first query // two identical placeholder searches should have all results from the first query
let (response, code) = server let (response, code) = server
@ -1424,7 +1424,7 @@ async fn federation_sort_same_indexes_different_criterion_same_direction() {
let documents = NESTED_DOCUMENTS.clone(); let documents = NESTED_DOCUMENTS.clone();
let (value, _) = index.add_documents(documents, None).await; let (value, _) = index.add_documents(documents, None).await;
index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
let (value, _) = index let (value, _) = index
.update_settings(json!({ .update_settings(json!({
@ -1439,7 +1439,7 @@ async fn federation_sort_same_indexes_different_criterion_same_direction() {
] ]
})) }))
.await; .await;
index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
// return mothers and fathers ordered across fields. // return mothers and fathers ordered across fields.
let (response, code) = server let (response, code) = server
@ -1638,7 +1638,7 @@ async fn federation_sort_same_indexes_different_criterion_opposite_direction() {
let documents = NESTED_DOCUMENTS.clone(); let documents = NESTED_DOCUMENTS.clone();
let (value, _) = index.add_documents(documents, None).await; let (value, _) = index.add_documents(documents, None).await;
index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
let (value, _) = index let (value, _) = index
.update_settings(json!({ .update_settings(json!({
@ -1653,7 +1653,7 @@ async fn federation_sort_same_indexes_different_criterion_opposite_direction() {
] ]
})) }))
.await; .await;
index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
// two identical placeholder searches should have all results from the first query // two identical placeholder searches should have all results from the first query
let (response, code) = server let (response, code) = server
@ -3048,14 +3048,14 @@ async fn federation_invalid_weight() {
let documents = FRUITS_DOCUMENTS.clone(); let documents = FRUITS_DOCUMENTS.clone();
let (value, _) = index.add_documents(documents, None).await; let (value, _) = index.add_documents(documents, None).await;
index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
let (value, _) = index let (value, _) = index
.update_settings( .update_settings(
json!({"searchableAttributes": ["name"], "filterableAttributes": ["BOOST"]}), json!({"searchableAttributes": ["name"], "filterableAttributes": ["BOOST"]}),
) )
.await; .await;
index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
let (response, code) = server let (response, code) = server
.multi_search(json!({"federation": {}, "queries": [ .multi_search(json!({"federation": {}, "queries": [
@ -3082,14 +3082,14 @@ async fn federation_null_weight() {
let documents = FRUITS_DOCUMENTS.clone(); let documents = FRUITS_DOCUMENTS.clone();
let (value, _) = index.add_documents(documents, None).await; let (value, _) = index.add_documents(documents, None).await;
index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
let (value, _) = index let (value, _) = index
.update_settings( .update_settings(
json!({"searchableAttributes": ["name"], "filterableAttributes": ["BOOST"]}), json!({"searchableAttributes": ["name"], "filterableAttributes": ["BOOST"]}),
) )
.await; .await;
index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
let (response, code) = server let (response, code) = server
.multi_search(json!({"federation": {}, "queries": [ .multi_search(json!({"federation": {}, "queries": [
@ -3150,7 +3150,7 @@ async fn federation_federated_contains_pagination() {
let documents = FRUITS_DOCUMENTS.clone(); let documents = FRUITS_DOCUMENTS.clone();
let (value, _) = index.add_documents(documents, None).await; let (value, _) = index.add_documents(documents, None).await;
index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
// fail when a federated query contains "limit" // fail when a federated query contains "limit"
let (response, code) = server let (response, code) = server
@ -3230,11 +3230,11 @@ async fn federation_federated_contains_facets() {
) )
.await; .await;
index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
let documents = FRUITS_DOCUMENTS.clone(); let documents = FRUITS_DOCUMENTS.clone();
let (value, _) = index.add_documents(documents, None).await; let (value, _) = index.add_documents(documents, None).await;
index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
// empty facets are actually OK // empty facets are actually OK
let (response, code) = server let (response, code) = server
@ -3314,7 +3314,7 @@ async fn federation_non_faceted_for_an_index() {
) )
.await; .await;
fruits_index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
let fruits_no_name_index = server.unique_index_with_prefix("fruits-no-name"); let fruits_no_name_index = server.unique_index_with_prefix("fruits-no-name");
@ -3324,18 +3324,18 @@ async fn federation_non_faceted_for_an_index() {
) )
.await; .await;
fruits_no_name_index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
let fruits_no_facets_index = server.unique_index_with_prefix("fruits-no-facets"); let fruits_no_facets_index = server.unique_index_with_prefix("fruits-no-facets");
let (value, _) = let (value, _) =
fruits_no_facets_index.update_settings(json!({"searchableAttributes": ["name"]})).await; fruits_no_facets_index.update_settings(json!({"searchableAttributes": ["name"]})).await;
fruits_no_facets_index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
let documents = FRUITS_DOCUMENTS.clone(); let documents = FRUITS_DOCUMENTS.clone();
let (value, _) = fruits_no_facets_index.add_documents(documents, None).await; let (value, _) = fruits_no_facets_index.add_documents(documents, None).await;
fruits_no_facets_index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
// fails // fails
let (response, code) = server let (response, code) = server
@ -3435,7 +3435,7 @@ async fn federation_non_federated_contains_federation_option() {
let documents = FRUITS_DOCUMENTS.clone(); let documents = FRUITS_DOCUMENTS.clone();
let (value, _) = index.add_documents(documents, None).await; let (value, _) = index.add_documents(documents, None).await;
index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
// fail when a non-federated query contains "federationOptions" // fail when a non-federated query contains "federationOptions"
let (response, code) = server let (response, code) = server
@ -3473,12 +3473,12 @@ async fn federation_vector_single_index() {
} }
}})) }}))
.await; .await;
index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
let documents = VECTOR_DOCUMENTS.clone(); let documents = VECTOR_DOCUMENTS.clone();
let (value, code) = index.add_documents(documents, None).await; let (value, code) = index.add_documents(documents, None).await;
snapshot!(code, @"202 Accepted"); snapshot!(code, @"202 Accepted");
index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
// same embedder // same embedder
let (response, code) = server let (response, code) = server
@ -3670,12 +3670,12 @@ async fn federation_vector_two_indexes() {
}, },
}})) }}))
.await; .await;
vectors_animal_index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
let documents = VECTOR_DOCUMENTS.clone(); let documents = VECTOR_DOCUMENTS.clone();
let (value, code) = vectors_animal_index.add_documents(documents, None).await; let (value, code) = vectors_animal_index.add_documents(documents, None).await;
snapshot!(code, @"202 Accepted"); snapshot!(code, @"202 Accepted");
vectors_animal_index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
let vectors_sentiment_index = server.unique_index_with_prefix("vectors-sentiment"); let vectors_sentiment_index = server.unique_index_with_prefix("vectors-sentiment");
@ -3687,12 +3687,12 @@ async fn federation_vector_two_indexes() {
} }
}})) }}))
.await; .await;
vectors_sentiment_index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
let documents = VECTOR_DOCUMENTS.clone(); let documents = VECTOR_DOCUMENTS.clone();
let (value, code) = vectors_sentiment_index.add_documents(documents, None).await; let (value, code) = vectors_sentiment_index.add_documents(documents, None).await;
snapshot!(code, @"202 Accepted"); snapshot!(code, @"202 Accepted");
vectors_sentiment_index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
let (response, code) = server let (response, code) = server
.multi_search(json!({"federation": {}, "queries": [ .multi_search(json!({"federation": {}, "queries": [
@ -4154,7 +4154,7 @@ async fn federation_facets_different_indexes_same_facet() {
let documents = SCORE_DOCUMENTS.clone(); let documents = SCORE_DOCUMENTS.clone();
let (value, _) = batman_2_index.add_documents(documents, None).await; let (value, _) = batman_2_index.add_documents(documents, None).await;
batman_2_index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
let (value, _) = batman_2_index let (value, _) = batman_2_index
.update_settings(json!({ .update_settings(json!({
@ -4170,7 +4170,7 @@ async fn federation_facets_different_indexes_same_facet() {
] ]
})) }))
.await; .await;
batman_2_index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
// return titles ordered across indexes // return titles ordered across indexes
let (response, code) = server let (response, code) = server
@ -4677,7 +4677,7 @@ async fn federation_facets_same_indexes() {
let documents = NESTED_DOCUMENTS.clone(); let documents = NESTED_DOCUMENTS.clone();
let (value, _) = doggos_index.add_documents(documents, None).await; let (value, _) = doggos_index.add_documents(documents, None).await;
doggos_index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
let (value, _) = doggos_index let (value, _) = doggos_index
.update_settings(json!({ .update_settings(json!({
@ -4692,13 +4692,13 @@ async fn federation_facets_same_indexes() {
] ]
})) }))
.await; .await;
doggos_index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
let doggos2_index = server.unique_index_with_prefix("doggos_2"); let doggos2_index = server.unique_index_with_prefix("doggos_2");
let documents = NESTED_DOCUMENTS.clone(); let documents = NESTED_DOCUMENTS.clone();
let (value, _) = doggos2_index.add_documents(documents, None).await; let (value, _) = doggos2_index.add_documents(documents, None).await;
doggos2_index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
let (value, _) = doggos2_index let (value, _) = doggos2_index
.update_settings(json!({ .update_settings(json!({
@ -4713,7 +4713,7 @@ async fn federation_facets_same_indexes() {
] ]
})) }))
.await; .await;
doggos2_index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
let (response, code) = server let (response, code) = server
.multi_search(json!({"federation": { .multi_search(json!({"federation": {
@ -4980,7 +4980,7 @@ async fn federation_inconsistent_merge_order() {
let documents = DOCUMENTS.clone(); let documents = DOCUMENTS.clone();
let (value, _) = movies2_index.add_documents(documents, None).await; let (value, _) = movies2_index.add_documents(documents, None).await;
movies2_index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
let (value, _) = movies2_index let (value, _) = movies2_index
.update_settings(json!({ .update_settings(json!({
@ -4999,7 +4999,7 @@ async fn federation_inconsistent_merge_order() {
} }
})) }))
.await; .await;
movies2_index.wait_task(value.uid()).await.succeeded(); server.wait_task(value.uid()).await.succeeded();
let batman_index = shared_batman_index().await; let batman_index = shared_batman_index().await;

View File

@ -114,14 +114,14 @@ async fn ensure_placeholder_search_hit_count_valid() {
} }
]); ]);
let (task, _code) = index.add_documents(documents, None).await; let (task, _code) = index.add_documents(documents, None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
let (response, _code) = index let (response, _code) = index
.update_settings( .update_settings(
json!({ "rankingRules": ["distinct:asc"], "distinctAttribute": "distinct"}), json!({ "rankingRules": ["distinct:asc"], "distinctAttribute": "distinct"}),
) )
.await; .await;
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
for page in 0..=4 { for page in 0..=4 {
index index

View File

@ -9,7 +9,7 @@ async fn index_with_documents<'a>(server: &'a Server<Shared>, documents: &Value)
let index = server.unique_index(); let index = server.unique_index();
let (task, _code) = index.add_documents(documents.clone(), None).await; let (task, _code) = index.add_documents(documents.clone(), None).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
index index
} }
@ -65,7 +65,7 @@ async fn search_no_searchable_attribute_set() {
.await; .await;
let (task, _status_code) = index.update_settings_searchable_attributes(json!(["*"])).await; let (task, _status_code) = index.update_settings_searchable_attributes(json!(["*"])).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
index index
.search( .search(
@ -78,7 +78,7 @@ async fn search_no_searchable_attribute_set() {
.await; .await;
let (task, _status_code) = index.update_settings_searchable_attributes(json!(["*"])).await; let (task, _status_code) = index.update_settings_searchable_attributes(json!(["*"])).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
index index
.search( .search(
@ -109,7 +109,7 @@ async fn search_on_all_attributes_restricted_set() {
let server = Server::new_shared(); let server = Server::new_shared();
let index = index_with_documents(server, &SIMPLE_SEARCH_DOCUMENTS).await; let index = index_with_documents(server, &SIMPLE_SEARCH_DOCUMENTS).await;
let (task, _status_code) = index.update_settings_searchable_attributes(json!(["title"])).await; let (task, _status_code) = index.update_settings_searchable_attributes(json!(["title"])).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
index index
.search(json!({"q": "Captain Marvel", "attributesToSearchOn": ["*"]}), |response, code| { .search(json!({"q": "Captain Marvel", "attributesToSearchOn": ["*"]}), |response, code| {
@ -194,7 +194,7 @@ async fn word_ranking_rule_order_exact_words() {
let (task, _status_code) = index let (task, _status_code) = index
.update_settings_typo_tolerance(json!({"disableOnWords": ["Captain", "Marvel"]})) .update_settings_typo_tolerance(json!({"disableOnWords": ["Captain", "Marvel"]}))
.await; .await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
// simple search should return 2 documents (ids: 2 and 3). // simple search should return 2 documents (ids: 2 and 3).
index index
@ -360,7 +360,7 @@ async fn search_on_exact_field() {
let (response, code) = let (response, code) =
index.update_settings_typo_tolerance(json!({ "disableOnAttributes": ["exact"] })).await; index.update_settings_typo_tolerance(json!({ "disableOnAttributes": ["exact"] })).await;
assert_eq!(202, code, "{response:?}"); assert_eq!(202, code, "{response:?}");
index.wait_task(response.uid()).await.succeeded(); server.wait_task(response.uid()).await.succeeded();
// Searching on an exact attribute should only return the document matching without typo. // Searching on an exact attribute should only return the document matching without typo.
index index
.search(json!({"q": "Marvel", "attributesToSearchOn": ["exact"]}), |response, code| { .search(json!({"q": "Marvel", "attributesToSearchOn": ["exact"]}), |response, code| {
@ -557,7 +557,7 @@ async fn nested_search_on_title_restricted_set_with_suffix_wildcard() {
let index = index_with_documents(server, &NESTED_SEARCH_DOCUMENTS).await; let index = index_with_documents(server, &NESTED_SEARCH_DOCUMENTS).await;
let (task, _status_code) = let (task, _status_code) =
index.update_settings_searchable_attributes(json!(["details.title"])).await; index.update_settings_searchable_attributes(json!(["details.title"])).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
index index
.search( .search(
@ -595,7 +595,7 @@ async fn nested_search_no_searchable_attribute_set_with_any_wildcard() {
.await; .await;
let (task, _status_code) = index.update_settings_searchable_attributes(json!(["*"])).await; let (task, _status_code) = index.update_settings_searchable_attributes(json!(["*"])).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
index index
.search( .search(
@ -608,7 +608,7 @@ async fn nested_search_no_searchable_attribute_set_with_any_wildcard() {
.await; .await;
let (task, _status_code) = index.update_settings_searchable_attributes(json!(["*"])).await; let (task, _status_code) = index.update_settings_searchable_attributes(json!(["*"])).await;
index.wait_task(task.uid()).await.succeeded(); server.wait_task(task.uid()).await.succeeded();
index index
.search( .search(