mirror of
https://github.com/meilisearch/meilisearch.git
synced 2025-03-06 22:02:34 +08:00
Apply PR requests related to settings API
This commit is contained in:
parent
5fa4b5c50a
commit
63e753bde0
@ -881,7 +881,7 @@ async fn search_with_pattern_filter_settings_errors() {
|
|||||||
test_settings_documents_indexing_swapping_and_search(
|
test_settings_documents_indexing_swapping_and_search(
|
||||||
&NESTED_DOCUMENTS,
|
&NESTED_DOCUMENTS,
|
||||||
&json!({"filterableAttributes": [{
|
&json!({"filterableAttributes": [{
|
||||||
"patterns": ["cattos","doggos.age"],
|
"attributePatterns": ["cattos","doggos.age"],
|
||||||
"features": {
|
"features": {
|
||||||
"facetSearch": false,
|
"facetSearch": false,
|
||||||
"filter": {"equality": false, "comparison": true}
|
"filter": {"equality": false, "comparison": true}
|
||||||
@ -907,7 +907,7 @@ async fn search_with_pattern_filter_settings_errors() {
|
|||||||
test_settings_documents_indexing_swapping_and_search(
|
test_settings_documents_indexing_swapping_and_search(
|
||||||
&NESTED_DOCUMENTS,
|
&NESTED_DOCUMENTS,
|
||||||
&json!({"filterableAttributes": [{
|
&json!({"filterableAttributes": [{
|
||||||
"patterns": ["cattos","doggos.age"],
|
"attributePatterns": ["cattos","doggos.age"],
|
||||||
"features": {
|
"features": {
|
||||||
"facetSearch": false,
|
"facetSearch": false,
|
||||||
"filter": {"equality": false, "comparison": true}
|
"filter": {"equality": false, "comparison": true}
|
||||||
@ -933,7 +933,7 @@ async fn search_with_pattern_filter_settings_errors() {
|
|||||||
// Check if the Comparison filter works with patterns
|
// Check if the Comparison filter works with patterns
|
||||||
test_settings_documents_indexing_swapping_and_search(
|
test_settings_documents_indexing_swapping_and_search(
|
||||||
&NESTED_DOCUMENTS,
|
&NESTED_DOCUMENTS,
|
||||||
&json!({"filterableAttributes": [{"patterns": ["cattos","doggos.age"]}]}),
|
&json!({"filterableAttributes": [{"attributePatterns": ["cattos","doggos.age"]}]}),
|
||||||
&json!({
|
&json!({
|
||||||
"filter": "doggos.age > 2"
|
"filter": "doggos.age > 2"
|
||||||
}),
|
}),
|
||||||
@ -954,7 +954,7 @@ async fn search_with_pattern_filter_settings_errors() {
|
|||||||
test_settings_documents_indexing_swapping_and_search(
|
test_settings_documents_indexing_swapping_and_search(
|
||||||
&NESTED_DOCUMENTS,
|
&NESTED_DOCUMENTS,
|
||||||
&json!({"filterableAttributes": [{
|
&json!({"filterableAttributes": [{
|
||||||
"patterns": ["cattos","doggos.age"],
|
"attributePatterns": ["cattos","doggos.age"],
|
||||||
"features": {
|
"features": {
|
||||||
"facetSearch": false,
|
"facetSearch": false,
|
||||||
"filter": {"equality": true, "comparison": false}
|
"filter": {"equality": true, "comparison": false}
|
||||||
@ -980,7 +980,7 @@ async fn search_with_pattern_filter_settings_errors() {
|
|||||||
test_settings_documents_indexing_swapping_and_search(
|
test_settings_documents_indexing_swapping_and_search(
|
||||||
&NESTED_DOCUMENTS,
|
&NESTED_DOCUMENTS,
|
||||||
&json!({"filterableAttributes": [{
|
&json!({"filterableAttributes": [{
|
||||||
"patterns": ["cattos","doggos.age"],
|
"attributePatterns": ["cattos","doggos.age"],
|
||||||
"features": {
|
"features": {
|
||||||
"facetSearch": false,
|
"facetSearch": false,
|
||||||
"filter": {"equality": true, "comparison": false}
|
"filter": {"equality": true, "comparison": false}
|
||||||
|
@ -510,7 +510,7 @@ async fn facet_search_with_filterable_attributes_rules() {
|
|||||||
|
|
||||||
test_settings_documents_indexing_swapping_and_facet_search(
|
test_settings_documents_indexing_swapping_and_facet_search(
|
||||||
&DOCUMENTS,
|
&DOCUMENTS,
|
||||||
&json!({"filterableAttributes": [{"patterns": ["genres"], "features": {"facetSearch": true, "filter": {"equality": false, "comparison": false}}}]}),
|
&json!({"filterableAttributes": [{"attributePatterns": ["genres"], "features": {"facetSearch": true, "filter": {"equality": false, "comparison": false}}}]}),
|
||||||
&json!({"facetName": "genres", "facetQuery": "a"}),
|
&json!({"facetName": "genres", "facetQuery": "a"}),
|
||||||
|response, code| {
|
|response, code| {
|
||||||
snapshot!(code, @"200 OK");
|
snapshot!(code, @"200 OK");
|
||||||
@ -531,7 +531,7 @@ async fn facet_search_with_filterable_attributes_rules() {
|
|||||||
|
|
||||||
test_settings_documents_indexing_swapping_and_facet_search(
|
test_settings_documents_indexing_swapping_and_facet_search(
|
||||||
&NESTED_DOCUMENTS,
|
&NESTED_DOCUMENTS,
|
||||||
&json!({"filterableAttributes": [{"patterns": ["doggos.name"], "features": {"facetSearch": true, "filter": {"equality": false, "comparison": false}}}]}),
|
&json!({"filterableAttributes": [{"attributePatterns": ["doggos.name"], "features": {"facetSearch": true, "filter": {"equality": false, "comparison": false}}}]}),
|
||||||
&json!({"facetName": "doggos.name", "facetQuery": "b"}),
|
&json!({"facetName": "doggos.name", "facetQuery": "b"}),
|
||||||
|response, code| {
|
|response, code| {
|
||||||
snapshot!(code, @"200 OK");
|
snapshot!(code, @"200 OK");
|
||||||
@ -555,7 +555,7 @@ async fn facet_search_with_filterable_attributes_rules_errors() {
|
|||||||
|
|
||||||
test_settings_documents_indexing_swapping_and_facet_search(
|
test_settings_documents_indexing_swapping_and_facet_search(
|
||||||
&DOCUMENTS,
|
&DOCUMENTS,
|
||||||
&json!({"filterableAttributes": [{"patterns": ["genres"]}]}),
|
&json!({"filterableAttributes": [{"attributePatterns": ["genres"]}]}),
|
||||||
&json!({"facetName": "genres", "facetQuery": "a"}),
|
&json!({"facetName": "genres", "facetQuery": "a"}),
|
||||||
|response, code| {
|
|response, code| {
|
||||||
snapshot!(code, @"400 Bad Request");
|
snapshot!(code, @"400 Bad Request");
|
||||||
@ -566,7 +566,7 @@ async fn facet_search_with_filterable_attributes_rules_errors() {
|
|||||||
|
|
||||||
test_settings_documents_indexing_swapping_and_facet_search(
|
test_settings_documents_indexing_swapping_and_facet_search(
|
||||||
&DOCUMENTS,
|
&DOCUMENTS,
|
||||||
&json!({"filterableAttributes": [{"patterns": ["genres"], "features": {"facetSearch": false, "filter": {"equality": true, "comparison": true}}}]}),
|
&json!({"filterableAttributes": [{"attributePatterns": ["genres"], "features": {"facetSearch": false, "filter": {"equality": true, "comparison": true}}}]}),
|
||||||
&json!({"facetName": "genres", "facetQuery": "a"}),
|
&json!({"facetName": "genres", "facetQuery": "a"}),
|
||||||
|response, code| {
|
|response, code| {
|
||||||
snapshot!(code, @"400 Bad Request");
|
snapshot!(code, @"400 Bad Request");
|
||||||
@ -576,7 +576,7 @@ async fn facet_search_with_filterable_attributes_rules_errors() {
|
|||||||
|
|
||||||
test_settings_documents_indexing_swapping_and_facet_search(
|
test_settings_documents_indexing_swapping_and_facet_search(
|
||||||
&DOCUMENTS,
|
&DOCUMENTS,
|
||||||
&json!({"filterableAttributes": [{"patterns": ["genres"], "features": {"facetSearch": false, "filter": {"equality": false, "comparison": false}}}]}),
|
&json!({"filterableAttributes": [{"attributePatterns": ["genres"], "features": {"facetSearch": false, "filter": {"equality": false, "comparison": false}}}]}),
|
||||||
&json!({"facetName": "genres", "facetQuery": "a"}),
|
&json!({"facetName": "genres", "facetQuery": "a"}),
|
||||||
|response, code| {
|
|response, code| {
|
||||||
snapshot!(code, @"400 Bad Request");
|
snapshot!(code, @"400 Bad Request");
|
||||||
@ -586,7 +586,7 @@ async fn facet_search_with_filterable_attributes_rules_errors() {
|
|||||||
|
|
||||||
test_settings_documents_indexing_swapping_and_facet_search(
|
test_settings_documents_indexing_swapping_and_facet_search(
|
||||||
&NESTED_DOCUMENTS,
|
&NESTED_DOCUMENTS,
|
||||||
&json!({"filterableAttributes": [{"patterns": ["doggos.name"]}]}),
|
&json!({"filterableAttributes": [{"attributePatterns": ["doggos.name"]}]}),
|
||||||
&json!({"facetName": "invalid.name", "facetQuery": "b"}),
|
&json!({"facetName": "invalid.name", "facetQuery": "b"}),
|
||||||
|response, code| {
|
|response, code| {
|
||||||
snapshot!(code, @"400 Bad Request");
|
snapshot!(code, @"400 Bad Request");
|
||||||
@ -597,7 +597,7 @@ async fn facet_search_with_filterable_attributes_rules_errors() {
|
|||||||
|
|
||||||
test_settings_documents_indexing_swapping_and_facet_search(
|
test_settings_documents_indexing_swapping_and_facet_search(
|
||||||
&NESTED_DOCUMENTS,
|
&NESTED_DOCUMENTS,
|
||||||
&json!({"filterableAttributes": [{"patterns": ["doggos.name"], "features": {"facetSearch": false, "filter": {"equality": true, "comparison": true}}}]}),
|
&json!({"filterableAttributes": [{"attributePatterns": ["doggos.name"], "features": {"facetSearch": false, "filter": {"equality": true, "comparison": true}}}]}),
|
||||||
&json!({"facetName": "doggos.name", "facetQuery": "b"}),
|
&json!({"facetName": "doggos.name", "facetQuery": "b"}),
|
||||||
|response, code| {
|
|response, code| {
|
||||||
snapshot!(code, @"400 Bad Request");
|
snapshot!(code, @"400 Bad Request");
|
||||||
@ -607,7 +607,7 @@ async fn facet_search_with_filterable_attributes_rules_errors() {
|
|||||||
|
|
||||||
test_settings_documents_indexing_swapping_and_facet_search(
|
test_settings_documents_indexing_swapping_and_facet_search(
|
||||||
&NESTED_DOCUMENTS,
|
&NESTED_DOCUMENTS,
|
||||||
&json!({"filterableAttributes": [{"patterns": ["doggos.name"], "features": {"facetSearch": false, "filter": {"equality": false, "comparison": false}}}]}),
|
&json!({"filterableAttributes": [{"attributePatterns": ["doggos.name"], "features": {"facetSearch": false, "filter": {"equality": false, "comparison": false}}}]}),
|
||||||
&json!({"facetName": "doggos.name", "facetQuery": "b"}),
|
&json!({"facetName": "doggos.name", "facetQuery": "b"}),
|
||||||
|response, code| {
|
|response, code| {
|
||||||
snapshot!(code, @"400 Bad Request");
|
snapshot!(code, @"400 Bad Request");
|
||||||
|
@ -125,7 +125,7 @@ async fn search_with_pattern_filter_settings() {
|
|||||||
// Check if the Equality filter works with patterns
|
// Check if the Equality filter works with patterns
|
||||||
test_settings_documents_indexing_swapping_and_search(
|
test_settings_documents_indexing_swapping_and_search(
|
||||||
&NESTED_DOCUMENTS,
|
&NESTED_DOCUMENTS,
|
||||||
&json!({"filterableAttributes": [{"patterns": ["cattos","doggos.age"]}]}),
|
&json!({"filterableAttributes": [{"attributePatterns": ["cattos","doggos.age"]}]}),
|
||||||
&json!({
|
&json!({
|
||||||
"filter": "cattos = pésti"
|
"filter": "cattos = pésti"
|
||||||
}),
|
}),
|
||||||
@ -158,7 +158,7 @@ async fn search_with_pattern_filter_settings() {
|
|||||||
test_settings_documents_indexing_swapping_and_search(
|
test_settings_documents_indexing_swapping_and_search(
|
||||||
&NESTED_DOCUMENTS,
|
&NESTED_DOCUMENTS,
|
||||||
&json!({"filterableAttributes": [{
|
&json!({"filterableAttributes": [{
|
||||||
"patterns": ["cattos","doggos.age"],
|
"attributePatterns": ["cattos","doggos.age"],
|
||||||
"features": {
|
"features": {
|
||||||
"facetSearch": false,
|
"facetSearch": false,
|
||||||
"filter": {"equality": true, "comparison": false}
|
"filter": {"equality": true, "comparison": false}
|
||||||
@ -197,7 +197,7 @@ async fn search_with_pattern_filter_settings() {
|
|||||||
test_settings_documents_indexing_swapping_and_search(
|
test_settings_documents_indexing_swapping_and_search(
|
||||||
&NESTED_DOCUMENTS,
|
&NESTED_DOCUMENTS,
|
||||||
&json!({"filterableAttributes": [{
|
&json!({"filterableAttributes": [{
|
||||||
"patterns": ["cattos","doggos.age"],
|
"attributePatterns": ["cattos","doggos.age"],
|
||||||
"features": {
|
"features": {
|
||||||
"facetSearch": false,
|
"facetSearch": false,
|
||||||
"filter": {"equality": false, "comparison": true}
|
"filter": {"equality": false, "comparison": true}
|
||||||
@ -282,7 +282,7 @@ async fn search_with_pattern_filter_settings_scenario_1() {
|
|||||||
|
|
||||||
let (task, code) = index
|
let (task, code) = index
|
||||||
.update_settings(json!({"filterableAttributes": [{
|
.update_settings(json!({"filterableAttributes": [{
|
||||||
"patterns": ["cattos","doggos.age"],
|
"attributePatterns": ["cattos","doggos.age"],
|
||||||
"features": {
|
"features": {
|
||||||
"facetSearch": false,
|
"facetSearch": false,
|
||||||
"filter": {"equality": true, "comparison": false}
|
"filter": {"equality": true, "comparison": false}
|
||||||
@ -348,7 +348,7 @@ async fn search_with_pattern_filter_settings_scenario_1() {
|
|||||||
// Update the settings activate comparison filter
|
// Update the settings activate comparison filter
|
||||||
let (task, code) = index
|
let (task, code) = index
|
||||||
.update_settings(json!({"filterableAttributes": [{
|
.update_settings(json!({"filterableAttributes": [{
|
||||||
"patterns": ["cattos","doggos.age"],
|
"attributePatterns": ["cattos","doggos.age"],
|
||||||
"features": {
|
"features": {
|
||||||
"facetSearch": false,
|
"facetSearch": false,
|
||||||
"filter": {"equality": true, "comparison": true}
|
"filter": {"equality": true, "comparison": true}
|
||||||
@ -460,7 +460,7 @@ async fn search_with_pattern_filter_settings_scenario_1() {
|
|||||||
// Update the settings deactivate equality filter
|
// Update the settings deactivate equality filter
|
||||||
let (task, code) = index
|
let (task, code) = index
|
||||||
.update_settings(json!({"filterableAttributes": [{
|
.update_settings(json!({"filterableAttributes": [{
|
||||||
"patterns": ["cattos","doggos.age"],
|
"attributePatterns": ["cattos","doggos.age"],
|
||||||
"features": {
|
"features": {
|
||||||
"facetSearch": false,
|
"facetSearch": false,
|
||||||
"filter": {"equality": false, "comparison": true}
|
"filter": {"equality": false, "comparison": true}
|
||||||
@ -560,7 +560,7 @@ async fn search_with_pattern_filter_settings_scenario_1() {
|
|||||||
// rollback the settings
|
// rollback the settings
|
||||||
let (task, code) = index
|
let (task, code) = index
|
||||||
.update_settings(json!({"filterableAttributes": [{
|
.update_settings(json!({"filterableAttributes": [{
|
||||||
"patterns": ["cattos","doggos.age"],
|
"attributePatterns": ["cattos","doggos.age"],
|
||||||
"features": {
|
"features": {
|
||||||
"facetSearch": false,
|
"facetSearch": false,
|
||||||
"filter": {"equality": true, "comparison": false}
|
"filter": {"equality": true, "comparison": false}
|
||||||
@ -633,9 +633,9 @@ async fn test_filterable_attributes_priority() {
|
|||||||
&NESTED_DOCUMENTS,
|
&NESTED_DOCUMENTS,
|
||||||
&json!({"filterableAttributes": [
|
&json!({"filterableAttributes": [
|
||||||
// deactivated filter
|
// deactivated filter
|
||||||
{"patterns": ["doggos.a*"], "features": {"facetSearch": false, "filter": {"equality": false, "comparison": false}}},
|
{"attributePatterns": ["doggos.a*"], "features": {"facetSearch": false, "filter": {"equality": false, "comparison": false}}},
|
||||||
// activated filter
|
// activated filter
|
||||||
{"patterns": ["doggos.*"]},
|
{"attributePatterns": ["doggos.*"]},
|
||||||
]}),
|
]}),
|
||||||
&json!({
|
&json!({
|
||||||
"filter": "doggos.name = bobby"
|
"filter": "doggos.name = bobby"
|
||||||
@ -671,9 +671,9 @@ async fn test_filterable_attributes_priority() {
|
|||||||
&NESTED_DOCUMENTS,
|
&NESTED_DOCUMENTS,
|
||||||
&json!({"filterableAttributes": [
|
&json!({"filterableAttributes": [
|
||||||
// deactivated filter
|
// deactivated filter
|
||||||
{"patterns": ["doggos"], "features": {"facetSearch": false, "filter": {"equality": false, "comparison": false}}},
|
{"attributePatterns": ["doggos"], "features": {"facetSearch": false, "filter": {"equality": false, "comparison": false}}},
|
||||||
// activated filter
|
// activated filter
|
||||||
{"patterns": ["doggos.*"]},
|
{"attributePatterns": ["doggos.*"]},
|
||||||
]}),
|
]}),
|
||||||
&json!({
|
&json!({
|
||||||
"filter": "doggos.name = bobby"
|
"filter": "doggos.name = bobby"
|
||||||
@ -709,9 +709,9 @@ async fn test_filterable_attributes_priority() {
|
|||||||
&NESTED_DOCUMENTS,
|
&NESTED_DOCUMENTS,
|
||||||
&json!({"filterableAttributes": [
|
&json!({"filterableAttributes": [
|
||||||
// deactivated filter
|
// deactivated filter
|
||||||
{"patterns": ["doggos.a*"], "features": {"facetSearch": false, "filter": {"equality": false, "comparison": false}}},
|
{"attributePatterns": ["doggos.a*"], "features": {"facetSearch": false, "filter": {"equality": false, "comparison": false}}},
|
||||||
// activated filter
|
// activated filter
|
||||||
{"patterns": ["doggos.*"]},
|
{"attributePatterns": ["doggos.*"]},
|
||||||
]}),
|
]}),
|
||||||
&json!({
|
&json!({
|
||||||
"filter": "doggos.age > 2"
|
"filter": "doggos.age > 2"
|
||||||
@ -735,9 +735,9 @@ async fn test_filterable_attributes_priority() {
|
|||||||
&NESTED_DOCUMENTS,
|
&NESTED_DOCUMENTS,
|
||||||
&json!({"filterableAttributes": [
|
&json!({"filterableAttributes": [
|
||||||
// deactivated filter
|
// deactivated filter
|
||||||
{"patterns": ["doggos"], "features": {"facetSearch": false, "filter": {"equality": false, "comparison": false}}},
|
{"attributePatterns": ["doggos"], "features": {"facetSearch": false, "filter": {"equality": false, "comparison": false}}},
|
||||||
// activated filter
|
// activated filter
|
||||||
{"patterns": ["doggos.*"]},
|
{"attributePatterns": ["doggos.*"]},
|
||||||
]}),
|
]}),
|
||||||
&json!({
|
&json!({
|
||||||
"filter": "doggos EXISTS"
|
"filter": "doggos EXISTS"
|
||||||
|
@ -521,9 +521,9 @@ async fn granular_filterable_attributes() {
|
|||||||
|
|
||||||
let (response, code) =
|
let (response, code) =
|
||||||
index.update_settings(json!({ "filterableAttributes": [
|
index.update_settings(json!({ "filterableAttributes": [
|
||||||
{ "patterns": ["name"], "features": { "facetSearch": true, "filter": {"equality": true, "comparison": false} } },
|
{ "attributePatterns": ["name"], "features": { "facetSearch": true, "filter": {"equality": true, "comparison": false} } },
|
||||||
{ "patterns": ["age"], "features": { "facetSearch": false, "filter": {"equality": true, "comparison": true} } },
|
{ "attributePatterns": ["age"], "features": { "facetSearch": false, "filter": {"equality": true, "comparison": true} } },
|
||||||
{ "patterns": ["id"] }
|
{ "attributePatterns": ["id"] }
|
||||||
] })).await;
|
] })).await;
|
||||||
assert_eq!(code, 202);
|
assert_eq!(code, 202);
|
||||||
index.wait_task(response.uid()).await.succeeded();
|
index.wait_task(response.uid()).await.succeeded();
|
||||||
@ -533,7 +533,7 @@ async fn granular_filterable_attributes() {
|
|||||||
snapshot!(json_string!(response["filterableAttributes"]), @r###"
|
snapshot!(json_string!(response["filterableAttributes"]), @r###"
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"patterns": [
|
"attributePatterns": [
|
||||||
"name"
|
"name"
|
||||||
],
|
],
|
||||||
"features": {
|
"features": {
|
||||||
@ -545,7 +545,7 @@ async fn granular_filterable_attributes() {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"patterns": [
|
"attributePatterns": [
|
||||||
"age"
|
"age"
|
||||||
],
|
],
|
||||||
"features": {
|
"features": {
|
||||||
@ -557,7 +557,7 @@ async fn granular_filterable_attributes() {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"patterns": [
|
"attributePatterns": [
|
||||||
"id"
|
"id"
|
||||||
],
|
],
|
||||||
"features": {
|
"features": {
|
||||||
|
@ -8,7 +8,7 @@ use crate::is_faceted_by;
|
|||||||
#[repr(transparent)]
|
#[repr(transparent)]
|
||||||
#[serde(transparent)]
|
#[serde(transparent)]
|
||||||
pub struct AttributePatterns {
|
pub struct AttributePatterns {
|
||||||
#[schema(value_type = Vec<String>)]
|
#[schema(example = json!(["title", "overview_*", "release_date"]))]
|
||||||
pub patterns: Vec<String>,
|
pub patterns: Vec<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -121,7 +121,8 @@ pub fn match_distinct_field(distinct_field: Option<&str>, field: &str) -> Patter
|
|||||||
|
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||||
pub enum PatternMatch {
|
pub enum PatternMatch {
|
||||||
/// The field is a parent of the of a nested field that matches the pattern
|
/// The field is a parent of a nested field that matches the pattern
|
||||||
|
/// For example, the field is `toto`, and the pattern is `toto.titi`
|
||||||
Parent,
|
Parent,
|
||||||
/// The field matches the pattern
|
/// The field matches the pattern
|
||||||
Match,
|
Match,
|
||||||
|
@ -50,7 +50,7 @@ impl FilterableAttributesRule {
|
|||||||
#[serde(deny_unknown_fields, rename_all = "camelCase")]
|
#[serde(deny_unknown_fields, rename_all = "camelCase")]
|
||||||
#[deserr(rename_all = camelCase, deny_unknown_fields)]
|
#[deserr(rename_all = camelCase, deny_unknown_fields)]
|
||||||
pub struct FilterableAttributesPatterns {
|
pub struct FilterableAttributesPatterns {
|
||||||
pub patterns: AttributePatterns,
|
pub attribute_patterns: AttributePatterns,
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
#[deserr(default)]
|
#[deserr(default)]
|
||||||
pub features: FilterableAttributesFeatures,
|
pub features: FilterableAttributesFeatures,
|
||||||
@ -58,15 +58,15 @@ pub struct FilterableAttributesPatterns {
|
|||||||
|
|
||||||
impl FilterableAttributesPatterns {
|
impl FilterableAttributesPatterns {
|
||||||
pub fn match_str(&self, field: &str) -> PatternMatch {
|
pub fn match_str(&self, field: &str) -> PatternMatch {
|
||||||
self.patterns.match_str(field)
|
self.attribute_patterns.match_str(field)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn features(&self) -> FilterableAttributesFeatures {
|
pub fn features(&self) -> FilterableAttributesFeatures {
|
||||||
self.features.clone()
|
self.features
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize, PartialEq, Eq, Clone, Debug, Deserr, ToSchema)]
|
#[derive(Serialize, Deserialize, PartialEq, Eq, Clone, Copy, Debug, Deserr, ToSchema)]
|
||||||
#[serde(deny_unknown_fields, rename_all = "camelCase")]
|
#[serde(deny_unknown_fields, rename_all = "camelCase")]
|
||||||
#[deserr(rename_all = camelCase, deny_unknown_fields)]
|
#[deserr(rename_all = camelCase, deny_unknown_fields)]
|
||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
@ -143,7 +143,7 @@ impl<E: DeserializeError> Deserr<E> for FilterableAttributesRule {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize, PartialEq, Eq, Clone, Debug, Deserr, ToSchema)]
|
#[derive(Serialize, Deserialize, PartialEq, Eq, Clone, Copy, Debug, Deserr, ToSchema)]
|
||||||
pub struct FilterFeatures {
|
pub struct FilterFeatures {
|
||||||
equality: bool,
|
equality: bool,
|
||||||
comparison: bool,
|
comparison: bool,
|
||||||
|
@ -868,12 +868,12 @@ impl Index {
|
|||||||
pub(crate) fn put_filterable_attributes_rules(
|
pub(crate) fn put_filterable_attributes_rules(
|
||||||
&self,
|
&self,
|
||||||
wtxn: &mut RwTxn<'_>,
|
wtxn: &mut RwTxn<'_>,
|
||||||
#[allow(clippy::ptr_arg)] fields: &Vec<FilterableAttributesRule>,
|
fields: &[FilterableAttributesRule],
|
||||||
) -> heed::Result<()> {
|
) -> heed::Result<()> {
|
||||||
self.main.remap_types::<Str, SerdeJson<_>>().put(
|
self.main.remap_types::<Str, SerdeJson<_>>().put(
|
||||||
wtxn,
|
wtxn,
|
||||||
main_key::FILTERABLE_FIELDS_KEY,
|
main_key::FILTERABLE_FIELDS_KEY,
|
||||||
fields,
|
&fields,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user