You're viewing version 2.16 of the OpenSearch documentation. This version is no longer maintained. For the latest version, see the current documentation. For information about OpenSearch version maintenance, see Release Schedule and Maintenance Policy.
Index
When querying across multiple indexes, you may need to filter results based on the index into which a document was indexed. The index field matches documents based on their index.
The following example request creates two indexes, products and customers, and adds a document to each index:
PUT products/_doc/1
{
"name": "Widget X"
}
PUT customers/_doc/2
{
"name": "John Doe"
}
You can then query both indexes and filter the results using the _index field, as shown in the following example request:
GET products,customers/_search
{
"query": {
"terms": {
"_index": ["products", "customers"]
}
},
"aggs": {
"index_groups": {
"terms": {
"field": "_index",
"size": 10
}
}
},
"sort": [
{
"_index": {
"order": "desc"
}
}
],
"script_fields": {
"index_name": {
"script": {
"lang": "painless",
"source": "doc['_index'].value"
}
}
}
}
In this example:
- The
querysection uses atermsquery to match documents from theproductsandcustomersindexes. - The
aggssection performs atermsaggregation on the_indexfield, grouping the results by index. - The
sortsection sorts the results by the_indexfield in ascending order. - The
script_fieldssection adds a new field calledindex_nameto the search results containing the_indexfield value for each document.
Querying on the _index field
The _index field represents the index into which a document was indexed. You can use this field in your queries to filter, aggregate, sort, or retrieve index information for your search results.
Because the _index field is automatically added to every document, you can use it in your queries like any other field. For example, you can use the terms query to match documents from multiple indexes. The following example query returns all documents from the products and customers indexes:
{
"query": {
"terms": {
"_index": ["products", "customers"]
}
}
}