When performing queries across multiple indexes, it is sometimes desirable to
add query clauses that are associated with documents of only certain indexes.
The _index field allows matching on the index a document was indexed into.
Its value is accessible in term, or terms queries, aggregations,
scripts, and when sorting:

The _index is exposed as a virtual field — it is not added to the
Lucene index as a real field.  This means that you can use the _index field
in a term or terms query (or any query that is rewritten to a term
query, such as the match,  query_string or simple_query_string query),
but it does not support prefix, wildcard, regexp, or fuzzy queries.
# Example documents
PUT index_1/_doc/1
{
  "text": "Document in index 1"
}
PUT index_2/_doc/2?refresh=true
{
  "text": "Document in index 2"
}
GET index_1,index_2/_search
{
  "query": {
    "terms": {
      "_index": ["index_1", "index_2"]  }
  },
  "aggs": {
    "indices": {
      "terms": {
        "field": "_index",
    }
  },
  "aggs": {
    "indices": {
      "terms": {
        "field": "_index",  "size": 10
      }
    }
  },
  "sort": [
    {
      "_index": {
        "size": 10
      }
    }
  },
  "sort": [
    {
      "_index": {  "order": "asc"
      }
    }
  ],
  "script_fields": {
    "index_name": {
      "script": {
        "lang": "painless",
        "source": "doc['_index']"
        "order": "asc"
      }
    }
  ],
  "script_fields": {
    "index_name": {
      "script": {
        "lang": "painless",
        "source": "doc['_index']"  }
    }
  }
}
      }
    }
  }
}