Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›Mapping ›Metadata fields

_index field

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 certain queries and aggregations, and when sorting or scripting:

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", 
        "size": 10
      }
    }
  },
  "sort": [
    {
      "_index": { 
        "order": "asc"
      }
    }
  ],
  "script_fields": {
    "index_name": {
      "script": {
        "lang": "painless",
        "source": "doc['_index']" 
      }
    }
  }
}

Querying on the _index field

Aggregating on the _index field

Sorting on the _index field

Accessing the _index field in scripts

The _index field is exposed virtually — 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), as well as prefix and wildcard queries. However, it does not support regexp and fuzzy queries.

Queries on the _index field accept index aliases in addition to concrete index names.

When specifying a remote index name such as cluster_1:index_3, the query must contain the separator character :. For example, a wildcard query on cluster_*:index_3 would match documents from the remote index. However, a query on cluster*index_1 is only matched against local indices, since no separator is present. This behavior aligns with the usual resolution rules for remote index names.

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/mapping-index-field.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API