Indices Query

More info about indices query is in the official elasticsearch docs

The indices query can be used when executed across multiple indices, allowing to have a query that executes only when executed on an index that matches a specific list of indices, and another query that executes when it is executed on an index that does not match the listed indices.

Simple example

{
    "indices" : {
        "indices" : ["index1", "index2"],
        "query" : {
            "term" : { "tag" : "wow" }
        },
        "no_match_query" : {
            "term" : { "tag" : "kow" }
        }
    }
}

In DSL:

$matchTermQuery = new TermQuery('tag', 'wow');
$noMatchTermQuery = new TermQuery('tag', 'kow');

$indicesQuery = new IndicesQuery(['index1', 'index2'], $matchTermQuery, $noMatchTermQuery);

$search = new Search();
$search->addQuery($indicesQuery);

$queryArray = $search->toArray();