Skip to content

Commit

Permalink
_fieldcaps API: Clear field.indices if it matches global indices
Browse files Browse the repository at this point in the history
  • Loading branch information
PSeitz committed Jan 12, 2024
1 parent 8de1c1c commit 8ad9336
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 56 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ struct FieldCapabilityEntryResponse {
// Option since it is filled later
#[serde(rename = "type")]
typ: Option<FieldCapabilityEntryType>,
#[serde(skip_serializing_if = "Vec::is_empty")]
indices: Vec<String>, // [ "index1", "index2" ],
#[serde(skip_serializing_if = "Vec::is_empty")]
non_aggregatable_indices: Vec<String>, // [ "index1" ]
Expand Down Expand Up @@ -164,6 +165,13 @@ pub fn convert_to_es_field_capabilities_response(
for field_type in types {
let mut add_entry = add_entry.clone();
add_entry.typ = Some(field_type.clone());

// If the field exists in all indices, we omit field.indices in the response.
let exists_in_all_indices = add_entry.indices.len() == indices.len();
if exists_in_all_indices {
add_entry.indices = Vec::new();
}

entry.insert(field_type, add_entry);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,104 +13,74 @@ expected:
metadata_field: false
searchable: true
aggregatable: true
indices:
- fieldcaps
nested.name:
keyword:
type: keyword
metadata_field: false
searchable: true
aggregatable: true
indices:
- fieldcaps
text:
type: text
metadata_field: false
searchable: true
aggregatable: true
indices:
- fieldcaps
host:
ip:
type: ip
metadata_field: false
searchable: true
aggregatable: true
indices:
- fieldcaps
mixed: # This is a little weird case (values [5, -5.5]), since coercion happens only on the columnar side. That's why `long` is not aggregatable.
long:
metadata_field: false
searchable: true
aggregatable: false
indices:
- fieldcaps
double:
metadata_field: false
searchable: true
aggregatable: true
indices:
- fieldcaps
date:
date_nanos:
metadata_field: false
searchable: true
aggregatable: true
indices:
- fieldcaps
_field_presence:
long:
metadata_field: false
searchable: true
aggregatable: false
indices:
- fieldcaps
response:
long:
metadata_field: false
searchable: true
aggregatable: true
indices:
- fieldcaps
id:
long:
metadata_field: false
searchable: true
aggregatable: true
indices:
- fieldcaps
double:
metadata_field: false
searchable: true
aggregatable: true
indices:
- fieldcaps
name:
keyword:
metadata_field: false
searchable: true
aggregatable: true
indices:
- fieldcaps
text:
metadata_field: false
searchable: true
aggregatable: true
indices:
- fieldcaps
tags:
keyword:
metadata_field: false
searchable: true
aggregatable: true
indices:
- fieldcaps
text:
metadata_field: false
searchable: true
aggregatable: true
indices:
- fieldcaps
---
# Test fields parameter with `.dynamic` suffix
engines:
Expand All @@ -128,21 +98,15 @@ expected:
metadata_field: false
searchable: true
aggregatable: true
indices:
- fieldcaps
nested.name:
keyword:
metadata_field: false
searchable: true
aggregatable: true
indices:
- fieldcaps
text:
metadata_field: false
searchable: true
aggregatable: true
indices:
- fieldcaps
---
# Test fields parameter with wildcard
method: [GET]
Expand All @@ -158,21 +122,15 @@ expected:
metadata_field: false
searchable: true
aggregatable: true
indices:
- fieldcaps
nested.name:
keyword:
metadata_field: false
searchable: true
aggregatable: true
indices:
- fieldcaps
text:
metadata_field: false
searchable: true
aggregatable: true
indices:
- fieldcaps
---
# Test fields parameter with wildcard
method: [GET]
Expand All @@ -188,21 +146,15 @@ expected:
metadata_field: false
searchable: true
aggregatable: true
indices:
- fieldcaps
nested.name:
keyword:
metadata_field: false
searchable: true
aggregatable: true
indices:
- fieldcaps
text:
metadata_field: false
searchable: true
aggregatable: true
indices:
- fieldcaps
---
# Test fields parameter with wildcard
method: [GET]
Expand All @@ -218,8 +170,6 @@ expected:
metadata_field: false
searchable: true
aggregatable: true
indices:
- fieldcaps
---
# Compare with elastic search
method: [GET]
Expand Down Expand Up @@ -289,9 +239,6 @@ expected:
metadata_field: false
searchable: true
aggregatable: true
indices:
- fieldcaps
- fieldcaps-2
tags-2:
keyword:
type: keyword
Expand All @@ -317,9 +264,6 @@ expected:
metadata_field: false
searchable: true
aggregatable: true
indices:
- fieldcaps
- fieldcaps-2
tags-2:
keyword:
type: keyword
Expand Down

0 comments on commit 8ad9336

Please sign in to comment.