mirror of
				https://github.com/meilisearch/meilisearch.git
				synced 2025-10-30 23:46:28 +00:00 
			
		
		
		
	Extract GEO_DOCUMENTS static variable and shared index with these docs
Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
This commit is contained in:
		| @@ -453,3 +453,57 @@ pub async fn shared_index_with_test_set() -> &'static Index<'static, Shared> { | ||||
|         }) | ||||
|         .await | ||||
| } | ||||
|  | ||||
| pub static GEO_DOCUMENTS: Lazy<Value> = Lazy::new(|| { | ||||
|     json!([ | ||||
|         { | ||||
|             "id": 1, | ||||
|             "name": "Taco Truck", | ||||
|             "address": "444 Salsa Street, Burritoville", | ||||
|             "type": "Mexican", | ||||
|             "rating": 9, | ||||
|             "_geo": { | ||||
|                 "lat": 34.0522, | ||||
|                 "lng": -118.2437 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "id": 2, | ||||
|             "name": "La Bella Italia", | ||||
|             "address": "456 Elm Street, Townsville", | ||||
|             "type": "Italian", | ||||
|             "rating": 9, | ||||
|             "_geo": { | ||||
|                 "lat": "45.4777599", | ||||
|                 "lng": "9.1967508" | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "id": 3, | ||||
|             "name": "Crêpe Truck", | ||||
|             "address": "2 Billig Avenue, Rouenville", | ||||
|             "type": "French", | ||||
|             "rating": 10 | ||||
|         } | ||||
|     ]) | ||||
| }); | ||||
|  | ||||
| pub async fn shared_index_with_geo_documents() -> &'static Index<'static, Shared> { | ||||
|     static INDEX: OnceCell<Index<'static, Shared>> = OnceCell::const_new(); | ||||
|     INDEX | ||||
|         .get_or_init(|| async { | ||||
|             let server = Server::new_shared(); | ||||
|             let index = server._index("SHARED_GEO_DOCUMENTS").to_shared(); | ||||
|             let (response, _code) = index._add_documents(GEO_DOCUMENTS.clone(), None).await; | ||||
|             index.wait_task(response.uid()).await.succeeded(); | ||||
|  | ||||
|             let (response, _code) = index | ||||
|                 ._update_settings( | ||||
|                     json!({"filterableAttributes": ["_geo"], "sortableAttributes": ["_geo"]}), | ||||
|                 ) | ||||
|                 .await; | ||||
|             index.wait_task(response.uid()).await.succeeded(); | ||||
|             index | ||||
|         }) | ||||
|         .await | ||||
| } | ||||
|   | ||||
| @@ -2,55 +2,14 @@ use meili_snap::{json_string, snapshot}; | ||||
| use meilisearch_types::milli::constants::RESERVED_GEO_FIELD_NAME; | ||||
| use once_cell::sync::Lazy; | ||||
|  | ||||
| use crate::common::{Server, Value}; | ||||
| use crate::common::shared_index_with_geo_documents; | ||||
| use crate::json; | ||||
|  | ||||
| use super::test_settings_documents_indexing_swapping_and_search; | ||||
|  | ||||
| static DOCUMENTS: Lazy<Value> = Lazy::new(|| { | ||||
|     json!([ | ||||
|         { | ||||
|             "id": 1, | ||||
|             "name": "Taco Truck", | ||||
|             "address": "444 Salsa Street, Burritoville", | ||||
|             "type": "Mexican", | ||||
|             "rating": 9, | ||||
|             "_geo": { | ||||
|                 "lat": 34.0522, | ||||
|                 "lng": -118.2437 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "id": 2, | ||||
|             "name": "La Bella Italia", | ||||
|             "address": "456 Elm Street, Townsville", | ||||
|             "type": "Italian", | ||||
|             "rating": 9, | ||||
|             "_geo": { | ||||
|                 "lat": "45.4777599", | ||||
|                 "lng": "9.1967508" | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "id": 3, | ||||
|             "name": "Crêpe Truck", | ||||
|             "address": "2 Billig Avenue, Rouenville", | ||||
|             "type": "French", | ||||
|             "rating": 10 | ||||
|         } | ||||
|     ]) | ||||
| }); | ||||
|  | ||||
| #[actix_rt::test] | ||||
| async fn geo_sort_with_geo_strings() { | ||||
|     let server = Server::new_shared(); | ||||
|     let index = server.unique_index(); | ||||
|  | ||||
|     let documents = DOCUMENTS.clone(); | ||||
|     index.update_settings_filterable_attributes(json!(["_geo"])).await; | ||||
|     index.update_settings_sortable_attributes(json!(["_geo"])).await; | ||||
|     let (task, _status_code) = index.add_documents(documents, None).await; | ||||
|     index.wait_task(task.uid()).await.succeeded(); | ||||
|     let index = shared_index_with_geo_documents().await; | ||||
|  | ||||
|     index | ||||
|         .search( | ||||
| @@ -67,14 +26,7 @@ async fn geo_sort_with_geo_strings() { | ||||
|  | ||||
| #[actix_rt::test] | ||||
| async fn geo_bounding_box_with_string_and_number() { | ||||
|     let server = Server::new_shared(); | ||||
|     let index = server.unique_index(); | ||||
|  | ||||
|     let documents = DOCUMENTS.clone(); | ||||
|     index.update_settings_filterable_attributes(json!(["_geo"])).await; | ||||
|     index.update_settings_sortable_attributes(json!(["_geo"])).await; | ||||
|     let (ret, _code) = index.add_documents(documents, None).await; | ||||
|     index.wait_task(ret.uid()).await.succeeded(); | ||||
|     let index = shared_index_with_geo_documents().await; | ||||
|  | ||||
|     index | ||||
|         .search( | ||||
| @@ -124,14 +76,7 @@ async fn geo_bounding_box_with_string_and_number() { | ||||
| #[actix_rt::test] | ||||
| async fn bug_4640() { | ||||
|     // https://github.com/meilisearch/meilisearch/issues/4640 | ||||
|     let server = Server::new_shared(); | ||||
|     let index = server.unique_index(); | ||||
|  | ||||
|     let documents = DOCUMENTS.clone(); | ||||
|     index.add_documents(documents, None).await; | ||||
|     index.update_settings_filterable_attributes(json!(["_geo"])).await; | ||||
|     let (ret, _code) = index.update_settings_sortable_attributes(json!(["_geo"])).await; | ||||
|     index.wait_task(ret.uid()).await.succeeded(); | ||||
|     let index = shared_index_with_geo_documents().await; | ||||
|  | ||||
|     // Sort the document with the second one first | ||||
|     index | ||||
|   | ||||
		Reference in New Issue
	
	Block a user