@@ -22,6 +22,7 @@ import org.opensearch.cluster.service.ClusterService
2222import org.opensearch.common.inject.Inject
2323import org.opensearch.common.settings.Settings
2424import org.opensearch.commons.alerting.model.Monitor
25+ import org.opensearch.commons.alerting.model.ScheduledJob
2526import org.opensearch.commons.authuser.User
2627import org.opensearch.index.query.BoolQueryBuilder
2728import org.opensearch.index.query.ExistsQueryBuilder
@@ -53,12 +54,14 @@ class TransportSearchMonitorAction @Inject constructor(
5354
5455 override fun doExecute (task : Task , searchMonitorRequest : SearchMonitorRequest , actionListener : ActionListener <SearchResponse >) {
5556 val searchSourceBuilder = searchMonitorRequest.searchRequest.source()
56- val queryBuilder = if (searchSourceBuilder.query() == null ) BoolQueryBuilder ()
57- else QueryBuilders .boolQuery().must(searchSourceBuilder.query())
57+ .seqNoAndPrimaryTerm(true )
58+ .version(true )
59+ val queryBuilder = QueryBuilders .boolQuery().must(searchSourceBuilder.query())
5860
59- if (searchMonitorRequest.searchRequest.indices().size == 1 &&
60- ! searchMonitorRequest.searchRequest.indices().contains(ALL_ALERT_INDEX_PATTERN )
61- ) {
61+ // The SearchMonitor API supports one 'index' parameter of either the SCHEDULED_JOBS_INDEX or ALL_ALERT_INDEX_PATTERN.
62+ // When querying the ALL_ALERT_INDEX_PATTERN, we don't want to check whether the MONITOR_TYPE field exists
63+ // because we're querying alert indexes.
64+ if (searchMonitorRequest.searchRequest.indices().contains(ScheduledJob .SCHEDULED_JOBS_INDEX )) {
6265 queryBuilder.filter(QueryBuilders .existsQuery(Monitor .MONITOR_TYPE ))
6366 }
6467
0 commit comments