# 多索引语法

大多数的API引用的`index`参数都支持在多个索引上执行，可以使用简单的`test1,test2,test3`表示形式（或者所有的索引`_all`）。它还支持通配符，例如：`test*`、`*test`、`te*t`或者`*test*`，和“添加” (`+`) 和 “删除”（`-`）的能力，例如：`+test*`，`-test3` 。

所有支持多索引的API都支持以下url查询参数：

*   `ignore_unavailable`

    控制是否忽略任何指定的不可用的索引， 包括不存在的索引或者已关闭的索引。可以指定为`true`或者`false`。
*   `allow_no_indices`

    控制在如果通配符索引表达式导致没有具体的索引时是否失败。可以指定为`true`或者`false`。例如，如果指定了通配符表达式`foo*`，并且没有以`foo`开头的索引，则根据此设置，请求将失败。此设置也适用于指定`_all` ，`*`或者没有指定索引的情况。此设置也适用于别名（aliases），一个场景就是别名指向了一个关闭的索引库。
*   `expand_wildcards`

    控制通配符表达式扩展到什么样的具体索引。如果指定了`open`，则通配符表达式将扩展为仅打开的索引，如果指定`closed`，则通配符表达式仅扩展为已关闭的索引）。也可以指定为这两个值（`open，close`）以扩展到所有的索引。

如果`none`被指定，则通配符扩展将被禁用，如果`all`被指定，通配符表达式将扩展到所有索引（这相当于指定`open,closed`）。

上述参数的默认设置取决于所使用的api。

> 注意
>
> 单个索引的API不支持多索引语法。例如[文档API](https://github.com/aqlu/elasticsearch-reference-cn/tree/571eeb8b33b6a7cef7c250f8bf130d3cc0dfe67d/Document_APIS.md)和[单个索引别名API](../indices_apis/index_aliases)。
