Skip to content

Commit

Permalink
Correct outdated information in _index docs. (#48436)
Browse files Browse the repository at this point in the history
This PR makes the following updates:
* Update the supported query types to include `prefix` and `wildcard`.
* Specify that queries accept index aliases.
* Clarify that when querying on a remote index name, the separator `:` must be
  present.
  • Loading branch information
jtibshirani committed Oct 24, 2019
1 parent a4614da commit b2974e3
Showing 1 changed file with 19 additions and 9 deletions.
28 changes: 19 additions & 9 deletions docs/reference/mapping/fields/index-field.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,11 @@
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:

NOTE: 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.
Its value is accessible in certain queries and aggregations, and when sorting
or scripting:

[source,console]
--------------------------
# Example documents
PUT index_1/_doc/1
{
"text": "Document in index 1"
Expand Down Expand Up @@ -63,3 +56,20 @@ GET index_1,index_2/_search
<2> Aggregating on the `_index` field
<3> Sorting on the `_index` field
<4> 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.

NOTE: 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.

0 comments on commit b2974e3

Please sign in to comment.