fix: use .keyword suffix for text field sorting in OpenSearch
OpenSearch dynamically maps string fields as text with a .keyword subfield. Sorting on text fields throws an error; only .keyword, date, and numeric fields support sorting. Add .keyword suffix to all string sort columns (status, routeId, agentId, executionId, correlationId, applicationName) while keeping start_time and duration_ms as-is. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -59,16 +59,17 @@ public record SearchRequest(
|
||||
"durationMs", "executionId", "applicationName"
|
||||
);
|
||||
|
||||
/** Maps camelCase API sort field names to snake_case OpenSearch/DB column names. */
|
||||
/** Maps camelCase API sort field names to OpenSearch field names.
|
||||
* Text fields use .keyword subfield; date/numeric fields are used directly. */
|
||||
private static final java.util.Map<String, String> SORT_FIELD_TO_COLUMN = java.util.Map.ofEntries(
|
||||
java.util.Map.entry("startTime", "start_time"),
|
||||
java.util.Map.entry("status", "status"),
|
||||
java.util.Map.entry("agentId", "agent_id"),
|
||||
java.util.Map.entry("routeId", "route_id"),
|
||||
java.util.Map.entry("correlationId", "correlation_id"),
|
||||
java.util.Map.entry("durationMs", "duration_ms"),
|
||||
java.util.Map.entry("executionId", "execution_id"),
|
||||
java.util.Map.entry("applicationName", "application_name")
|
||||
java.util.Map.entry("status", "status.keyword"),
|
||||
java.util.Map.entry("agentId", "agent_id.keyword"),
|
||||
java.util.Map.entry("routeId", "route_id.keyword"),
|
||||
java.util.Map.entry("correlationId", "correlation_id.keyword"),
|
||||
java.util.Map.entry("executionId", "execution_id.keyword"),
|
||||
java.util.Map.entry("applicationName", "application_name.keyword")
|
||||
);
|
||||
|
||||
public SearchRequest {
|
||||
|
||||
Reference in New Issue
Block a user