mirror of
https://github.com/elastic/eland.git
synced 2025-07-11 00:02:14 +08:00
Optimize FieldMappings.aggregate_field_name() method
This commit is contained in:
parent
54b497ed9a
commit
d3f8d7b8f6
@ -108,12 +108,6 @@ class ArithmeticSeries(ArithmeticObject):
|
|||||||
aggregatable_field_name = query_compiler.display_name_to_aggregatable_name(
|
aggregatable_field_name = query_compiler.display_name_to_aggregatable_name(
|
||||||
display_name
|
display_name
|
||||||
)
|
)
|
||||||
if aggregatable_field_name is None:
|
|
||||||
raise ValueError(
|
|
||||||
f"Can not perform arithmetic operations on non aggregatable fields"
|
|
||||||
f"{display_name} is not aggregatable."
|
|
||||||
)
|
|
||||||
|
|
||||||
self._value = f"doc['{aggregatable_field_name}'].value"
|
self._value = f"doc['{aggregatable_field_name}'].value"
|
||||||
self._tasks = []
|
self._tasks = []
|
||||||
self._dtype = dtype
|
self._dtype = dtype
|
||||||
|
@ -584,21 +584,19 @@ class FieldMappings:
|
|||||||
|
|
||||||
raise KeyError if the field_name doesn't exist in the mapping, or isn't aggregatable
|
raise KeyError if the field_name doesn't exist in the mapping, or isn't aggregatable
|
||||||
"""
|
"""
|
||||||
if display_name not in self._mappings_capabilities.index:
|
mapping: Optional[pd.Series] = None
|
||||||
|
|
||||||
|
try:
|
||||||
|
mapping = self._mappings_capabilities.loc[display_name]
|
||||||
|
except KeyError:
|
||||||
raise KeyError(
|
raise KeyError(
|
||||||
f"Can not get aggregatable field name for invalid display name {display_name}"
|
f"Can not get aggregatable field name for invalid display name {display_name}"
|
||||||
)
|
) from None
|
||||||
|
|
||||||
if (
|
if mapping is not None and mapping.aggregatable_es_field_name is None:
|
||||||
self._mappings_capabilities.loc[display_name].aggregatable_es_field_name
|
warnings.warn(f"Aggregations not supported for '{display_name}'")
|
||||||
is None
|
|
||||||
):
|
|
||||||
warnings.warn(
|
|
||||||
f"Aggregations not supported for '{display_name}' "
|
|
||||||
f"'{self._mappings_capabilities.loc[display_name].es_field_name}'"
|
|
||||||
)
|
|
||||||
|
|
||||||
return self._mappings_capabilities.loc[display_name].aggregatable_es_field_name
|
return mapping.aggregatable_es_field_name
|
||||||
|
|
||||||
def aggregatable_field_names(self) -> Dict[str, str]:
|
def aggregatable_field_names(self) -> Dict[str, str]:
|
||||||
"""
|
"""
|
||||||
|
@ -797,9 +797,13 @@ class QueryCompiler:
|
|||||||
def get_arithmetic_op_fields(self) -> Optional["ArithmeticOpFieldsTask"]:
|
def get_arithmetic_op_fields(self) -> Optional["ArithmeticOpFieldsTask"]:
|
||||||
return self._operations.get_arithmetic_op_fields()
|
return self._operations.get_arithmetic_op_fields()
|
||||||
|
|
||||||
def display_name_to_aggregatable_name(self, display_name: str) -> Optional[str]:
|
def display_name_to_aggregatable_name(self, display_name: str) -> str:
|
||||||
aggregatable_field_name = self._mappings.aggregatable_field_name(display_name)
|
aggregatable_field_name = self._mappings.aggregatable_field_name(display_name)
|
||||||
|
if aggregatable_field_name is None:
|
||||||
|
raise ValueError(
|
||||||
|
f"Can not perform arithmetic operations on non aggregatable fields"
|
||||||
|
f"{display_name} is not aggregatable."
|
||||||
|
)
|
||||||
return aggregatable_field_name
|
return aggregatable_field_name
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user