Skip to content
Snippets Groups Projects
Code owners

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();