diff --git a/services/alarm-logger/src/main/java/org/phoebus/alarm/logging/rest/AlarmLogSearchUtil.java b/services/alarm-logger/src/main/java/org/phoebus/alarm/logging/rest/AlarmLogSearchUtil.java index adb1329daf..15754f9735 100644 --- a/services/alarm-logger/src/main/java/org/phoebus/alarm/logging/rest/AlarmLogSearchUtil.java +++ b/services/alarm-logger/src/main/java/org/phoebus/alarm/logging/rest/AlarmLogSearchUtil.java @@ -63,6 +63,8 @@ public class AlarmLogSearchUtil { private static final String STARTTIME = "start"; private static final String ENDTIME = "end"; + private static final String ROOT = "root"; + private static final String CONFIG_INDEX_FORMAT = "_alarms_config"; private static final String STATE_INDEX_FORMAT = "_alarms_state"; @@ -136,6 +138,25 @@ public static List search(ElasticsearchClient client, ); configSet = true; break; + case ROOT: + boolQuery.must( + Query.of(b -> b.bool(s -> s.should( + Query.of(q -> q + .wildcard(WildcardQuery.of(w -> w + .field("config").value("state:/" + parameter.getValue().strip() + "*") + ) + ) + ), + Query.of(q -> q + .wildcard(WildcardQuery.of(w -> w + .field("config").value("config:/" + parameter.getValue().strip() + "*") + ) + ) + ) + ))) + ); + configSet = true; + break; case SEVERITY: if (!parameter.getValue().equalsIgnoreCase("*")) boolQuery.must(WildcardQuery.of(w -> w