def _handle_dict_field(
        self,
        field_name: str,
        value: Dict[str, Any],
        doc_id: str,
        field_types: Dict[str, str],
        numeric_field_map: Dict[str, Any]
    ) -> None:
        """Handle dictionary field processing for document updates.

        This method processes a dictionary field by:
        1. Removing any existing entries for this field from the numeric field map
        2. Adding new entries for numeric values (int, float) in the dictionary
        3. Validating that all dictionary values are of supported types

        Args:
            field_name: The name of the dictionary field
            value: The dictionary to be processed
            doc_id: The ID of the document being updated
            numeric_field_map: Dictionary mapping flattened field names to their numeric values

        Raises:
            MarqoDocumentParsingError: If any value in the dictionary is not a supported numeric type
        """
        keys_to_remove = [
            key for key in numeric_field_map.keys()
            if key.startswith(f'{field_name}.')
        ]
        for key in keys_to_remove: #remove existing entries for this specific map field
            del numeric_field_map[key]
            
        # Add new entries
        for k, v in value.items():
            if not isinstance(v, (int, float)):
                raise MarqoDocumentParsingError(f'Unsupported field type {type(v)} for field {field_name} in doc {doc_id}. '
                                               'We only support int and float types for map values when updating a document')

            numeric_field_map[f'{field_name}.{k}'] = v

            # Set the appropriate field type based on the value type
            if isinstance(v, int):
                field_types[f'{field_name}.{k}'] = MarqoFieldTypes.INT_MAP.value
                field_types[f'{field_name}'] = MarqoFieldTypes.INT_MAP.value
            else:  # Must be float based on the earlier check
                field_types[f'{field_name}.{k}'] = MarqoFieldTypes.FLOAT_MAP.value
                field_types[f'{field_name}'] = MarqoFieldTypes.FLOAT_MAP.value
Handle dictionary field processing for document updates.

        This method processes a dictionary field by:
        1. Removing any existing entries for this field from the numeric field map
        2. Adding new entries for numeric values (int, float) in the dictionary
        3. Validating that all dictionary values are of supported types

        Args:
            field_name: The name of the dictionary field
            value: The dictionary to be processed
            doc_id: The ID of the document being updated
            numeric_field_map: Dictionary mapping flattened field names to their numeric values

        Raises:
            MarqoDocumentParsingError: If any value in the dictionary is not a supported numeric type
        
src/marqo/core/semi_structured_vespa_index/semi_structured_vespa_index.py