mirror of
				https://github.com/meilisearch/meilisearch.git
				synced 2025-10-30 07:26:26 +00:00 
			
		
		
		
	Support JSON value as filters
This commit is contained in:
		
				
					committed by
					
						 Kerollmops
						Kerollmops
					
				
			
			
				
	
			
			
			
						parent
						
							3329248a84
						
					
				
				
					commit
					ee812b31c4
				
			| @@ -90,10 +90,9 @@ impl IndexScheduler { | ||||
|                 request.send_json(settings.clone()).map_err(into_backoff_error) | ||||
|             })?; | ||||
|  | ||||
|             // TODO support JSON Value objects | ||||
|             let filter = filter | ||||
|                 .as_deref() | ||||
|                 .map(Filter::from_str) | ||||
|                 .as_ref() | ||||
|                 .map(Filter::from_json) | ||||
|                 .transpose() | ||||
|                 .map_err(|e| Error::from_milli(e, Some(uid.to_string())))? | ||||
|                 .flatten(); | ||||
|   | ||||
| @@ -8,6 +8,7 @@ use milli::update::IndexDocumentsMethod; | ||||
| use milli::Object; | ||||
| use roaring::RoaringBitmap; | ||||
| use serde::{Deserialize, Serialize, Serializer}; | ||||
| use serde_json::Value; | ||||
| use time::{Duration, OffsetDateTime}; | ||||
| use utoipa::{schema, ToSchema}; | ||||
| use uuid::Uuid; | ||||
| @@ -111,11 +112,11 @@ pub enum KindWithContent { | ||||
|     }, | ||||
|     DocumentDeletionByFilter { | ||||
|         index_uid: String, | ||||
|         filter_expr: serde_json::Value, | ||||
|         filter_expr: Value, | ||||
|     }, | ||||
|     DocumentEdition { | ||||
|         index_uid: String, | ||||
|         filter_expr: Option<serde_json::Value>, | ||||
|         filter_expr: Option<Value>, | ||||
|         context: Option<milli::Object>, | ||||
|         function: String, | ||||
|     }, | ||||
| @@ -174,7 +175,7 @@ pub struct IndexSwap { | ||||
| #[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize, ToSchema)] | ||||
| #[serde(rename_all = "camelCase")] | ||||
| pub struct ExportIndexSettings { | ||||
|     pub filter: Option<String>, | ||||
|     pub filter: Option<Value>, | ||||
| } | ||||
|  | ||||
| impl KindWithContent { | ||||
|   | ||||
| @@ -12,6 +12,7 @@ use meilisearch_types::index_uid_pattern::IndexUidPattern; | ||||
| use meilisearch_types::keys::actions; | ||||
| use meilisearch_types::tasks::{ExportIndexSettings as DbExportIndexSettings, KindWithContent}; | ||||
| use serde::Serialize; | ||||
| use serde_json::Value; | ||||
| use tracing::debug; | ||||
| use utoipa::{OpenApi, ToSchema}; | ||||
|  | ||||
| @@ -122,5 +123,5 @@ pub struct ExportIndexSettings { | ||||
|     #[schema(value_type = Option<String>, example = json!("genres = action"))] | ||||
|     #[serde(default)] | ||||
|     #[deserr(default, error = DeserrJsonError<InvalidExportIndexFilter>)] | ||||
|     pub filter: Option<String>, | ||||
|     pub filter: Option<Value>, | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user