mirror of
https://github.com/meilisearch/MeiliSearch
synced 2025-03-12 11:02:05 +01:00
Add default deserialize value
This commit is contained in:
parent
ea7e299663
commit
d500c7f625
@ -523,7 +523,12 @@ async fn granular_filterable_attributes() {
|
|||||||
index.update_settings(json!({ "filterableAttributes": [
|
index.update_settings(json!({ "filterableAttributes": [
|
||||||
{ "attributePatterns": ["name"], "features": { "facetSearch": true, "filter": {"equality": true, "comparison": false} } },
|
{ "attributePatterns": ["name"], "features": { "facetSearch": true, "filter": {"equality": true, "comparison": false} } },
|
||||||
{ "attributePatterns": ["age"], "features": { "facetSearch": false, "filter": {"equality": true, "comparison": true} } },
|
{ "attributePatterns": ["age"], "features": { "facetSearch": false, "filter": {"equality": true, "comparison": true} } },
|
||||||
{ "attributePatterns": ["id"] }
|
{ "attributePatterns": ["id"] },
|
||||||
|
{ "attributePatterns": ["default-filterable-features-null"], "features": { "facetSearch": true } },
|
||||||
|
{ "attributePatterns": ["default-filterable-features-equality"], "features": { "facetSearch": true, "filter": {"comparison": true} } },
|
||||||
|
{ "attributePatterns": ["default-filterable-features-comparison"], "features": { "facetSearch": true, "filter": {"equality": true} } },
|
||||||
|
{ "attributePatterns": ["default-filterable-features-empty"], "features": { "facetSearch": true, "filter": {} } },
|
||||||
|
{ "attributePatterns": ["default-facet-search"], "features": { "filter": {"equality": true, "comparison": true} } },
|
||||||
] })).await;
|
] })).await;
|
||||||
assert_eq!(code, 202);
|
assert_eq!(code, 202);
|
||||||
index.wait_task(response.uid()).await.succeeded();
|
index.wait_task(response.uid()).await.succeeded();
|
||||||
@ -567,6 +572,66 @@ async fn granular_filterable_attributes() {
|
|||||||
"comparison": false
|
"comparison": false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"attributePatterns": [
|
||||||
|
"default-filterable-features-null"
|
||||||
|
],
|
||||||
|
"features": {
|
||||||
|
"facetSearch": true,
|
||||||
|
"filter": {
|
||||||
|
"equality": true,
|
||||||
|
"comparison": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"attributePatterns": [
|
||||||
|
"default-filterable-features-equality"
|
||||||
|
],
|
||||||
|
"features": {
|
||||||
|
"facetSearch": true,
|
||||||
|
"filter": {
|
||||||
|
"equality": true,
|
||||||
|
"comparison": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"attributePatterns": [
|
||||||
|
"default-filterable-features-comparison"
|
||||||
|
],
|
||||||
|
"features": {
|
||||||
|
"facetSearch": true,
|
||||||
|
"filter": {
|
||||||
|
"equality": true,
|
||||||
|
"comparison": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"attributePatterns": [
|
||||||
|
"default-filterable-features-empty"
|
||||||
|
],
|
||||||
|
"features": {
|
||||||
|
"facetSearch": true,
|
||||||
|
"filter": {
|
||||||
|
"equality": true,
|
||||||
|
"comparison": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"attributePatterns": [
|
||||||
|
"default-facet-search"
|
||||||
|
],
|
||||||
|
"features": {
|
||||||
|
"facetSearch": false,
|
||||||
|
"filter": {
|
||||||
|
"equality": true,
|
||||||
|
"comparison": true
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
"###);
|
"###);
|
||||||
|
@ -71,7 +71,11 @@ impl FilterableAttributesPatterns {
|
|||||||
#[deserr(rename_all = camelCase, deny_unknown_fields)]
|
#[deserr(rename_all = camelCase, deny_unknown_fields)]
|
||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
pub struct FilterableAttributesFeatures {
|
pub struct FilterableAttributesFeatures {
|
||||||
|
#[serde(default)]
|
||||||
|
#[deserr(default)]
|
||||||
facet_search: bool,
|
facet_search: bool,
|
||||||
|
#[serde(default)]
|
||||||
|
#[deserr(default)]
|
||||||
filter: FilterFeatures,
|
filter: FilterFeatures,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -144,11 +148,21 @@ impl<E: DeserializeError> Deserr<E> for FilterableAttributesRule {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize, PartialEq, Eq, Clone, Copy, Debug, Deserr, ToSchema)]
|
#[derive(Serialize, Deserialize, PartialEq, Eq, Clone, Copy, Debug, Deserr, ToSchema)]
|
||||||
|
#[serde(deny_unknown_fields, rename_all = "camelCase")]
|
||||||
|
#[deserr(rename_all = camelCase, deny_unknown_fields)]
|
||||||
pub struct FilterFeatures {
|
pub struct FilterFeatures {
|
||||||
|
#[serde(default = "default_true")]
|
||||||
|
#[deserr(default = true)]
|
||||||
equality: bool,
|
equality: bool,
|
||||||
|
#[serde(default)]
|
||||||
|
#[deserr(default)]
|
||||||
comparison: bool,
|
comparison: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn default_true() -> bool {
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
impl FilterFeatures {
|
impl FilterFeatures {
|
||||||
/// Get the allowed operators for the filter.
|
/// Get the allowed operators for the filter.
|
||||||
pub fn allowed_operators(&self) -> Vec<String> {
|
pub fn allowed_operators(&self) -> Vec<String> {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user