From a01712e68c48485182f7f2f9c15a9c6c6f213b3c Mon Sep 17 00:00:00 2001 From: hsiegeln <37154749+hsiegeln@users.noreply.github.com> Date: Thu, 26 Mar 2026 10:45:59 +0100 Subject: [PATCH] fix: use .keyword suffix on both exchangeId term queries Defensive: use .keyword on the top-level exchangeId field too, in case indices were created before the explicit keyword mapping was added to the template. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../com/cameleer3/server/app/search/OpenSearchLogIndex.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cameleer3-server-app/src/main/java/com/cameleer3/server/app/search/OpenSearchLogIndex.java b/cameleer3-server-app/src/main/java/com/cameleer3/server/app/search/OpenSearchLogIndex.java index 42f1201f..cf1f7628 100644 --- a/cameleer3-server-app/src/main/java/com/cameleer3/server/app/search/OpenSearchLogIndex.java +++ b/cameleer3-server-app/src/main/java/com/cameleer3/server/app/search/OpenSearchLogIndex.java @@ -112,7 +112,7 @@ public class OpenSearchLogIndex { if (exchangeId != null && !exchangeId.isEmpty()) { // Match on top-level field (new records) or MDC nested field (old records) bool.must(Query.of(q -> q.bool(b -> b - .should(Query.of(s -> s.term(t -> t.field("exchangeId").value(FieldValue.of(exchangeId))))) + .should(Query.of(s -> s.term(t -> t.field("exchangeId.keyword").value(FieldValue.of(exchangeId))))) .should(Query.of(s -> s.term(t -> t.field("mdc.camel.exchangeId.keyword").value(FieldValue.of(exchangeId))))) .minimumShouldMatch("1")))); }