Skip to main content
Version: 1.3.0

Capitalize

Text Processing String Formatting Case Conversion

Synopsis

A text formatting processor that capitalizes the first letter of strings while converting the remaining characters to lowercase, providing consistent sentence-case formatting for data normalization and display purposes.

Schema

- capitalize:
field: <ident>
target_field: <ident>
description: <text>
if: <script>
ignore_failure: <boolean>
ignore_missing: <boolean>
on_failure: <processor[]>
on_success: <processor[]>
tag: <string>

Configuration

The following fields are used to define the processor:

FieldRequiredDefaultDescription
fieldY-Field containing the string(s) to capitalize
target_fieldNfieldField to store the capitalized result
descriptionN-Explanatory note
ifN-Condition to run
ignore_failureNfalseContinue if capitalization fails
ignore_missingNfalseContinue if source field doesn't exist
on_failureN-See Handling Failures
on_successN-See Handling Success
tagN-Identifier

Details

The processor applies proper sentence-case formatting by capitalizing the first character and converting all subsequent characters to lowercase. This ensures consistent formatting regardless of the original case of the input string.

note

The processor supports both individual strings and string arrays, applying capitalization to each string element in the array.

Single-character strings are converted to uppercase, while longer strings receive the first-letter capitalization treatment. Empty strings are returned unchanged to maintain data integrity.

The processor handles Unicode characters correctly, ensuring proper case conversion for international text content and special characters.

warning

The processor only works with string and string array field types. Other data types will result in processing errors.

Examples

Basic

Capitalizing simple strings...

{
"user_name": "john doe",
"company": "ACME CORPORATION",
"department": "Information Technology"
}
processors:
- capitalize:
field: user_name
target_field: formatted_name
- capitalize:
field: company
target_field: formatted_company
- capitalize:
field: department

produces properly formatted text:

{
"user_name": "john doe",
"company": "ACME CORPORATION",
"department": "Information technology",
"formatted_name": "John doe",
"formatted_company": "Acme corporation"
}

Arrays

Capitalizing string arrays...

{
"categories": ["SECURITY", "network", "Database", "aPPLICATION"],
"cities": ["new york", "LOS ANGELES", "chicago", "HOUSTON"]
}
processors:
- capitalize:
field: categories
target_field: clean_categories
- capitalize:
field: cities

formats all array elements:

{
"categories": ["SECURITY", "network", "Database", "aPPLICATION"],
"cities": ["New york", "Los angeles", "Chicago", "Houston"],
"clean_categories": ["Security", "Network", "Database", "Application"]
}

Log Level Normalization

Normalizing log levels...

{
"log_entries": [
{"level": "ERROR", "message": "Database connection failed"},
{"level": "warning", "message": "Memory usage high"},
{"level": "INFO", "message": "System started"}
]
}
processors:
- foreach:
field: log_entries
processor:
capitalize:
field: _ingest._value.level
target_field: _ingest._value.normalized_level

creates consistent log level format:

{
"log_entries": [
{"level": "ERROR", "message": "Database connection failed", "normalized_level": "Error"},
{"level": "warning", "message": "Memory usage high", "normalized_level": "Warning"},
{"level": "INFO", "message": "System started", "normalized_level": "Info"}
]
}

Status Fields

Formatting status fields...

{
"server_status": "RUNNING",
"database_status": "offline",
"service_status": "Maintenance"
}
processors:
- capitalize:
field: server_status
- capitalize:
field: database_status
- capitalize:
field: service_status

standardizes status formatting:

{
"server_status": "Running",
"database_status": "Offline",
"service_status": "Maintenance"
}

Single Characters

Handling single characters and short strings...

{
"grade": "a",
"priority": "h",
"code": "x1"
}
processors:
- capitalize:
field: grade
target_field: letter_grade
- capitalize:
field: priority
target_field: priority_level
- capitalize:
field: code
target_field: formatted_code

properly formats short strings:

{
"grade": "a",
"priority": "h",
"code": "x1",
"letter_grade": "A",
"priority_level": "H",
"formatted_code": "X1"
}

Conditional

Capitalizing based on conditions...

{
"alert_type": "CRITICAL",
"severity": "high",
"format_alerts": true
}
processors:
- capitalize:
field: alert_type
target_field: formatted_alert
if: "format_alerts == true"
- capitalize:
field: severity
target_field: formatted_severity
if: "format_alerts == true"

applies formatting when condition is met:

{
"alert_type": "CRITICAL",
"severity": "high",
"format_alerts": true,
"formatted_alert": "Critical",
"formatted_severity": "High"
}