刷新
1.0 版引入
Flush API 将所有内存中的操作存储到磁盘上的段中。刷新到索引段的操作在集群重启期间不再需要事务日志,因为这些操作现在已存储在 Lucene 索引中。
OpenSearch 会根据事务日志大小等条件在后台自动执行 Flush 操作,这由 index.translog.flush_threshold_size
设置控制。请谨慎使用 Flush API,例如用于手动重启或释放内存。
端点
Flush API 支持以下路径
GET /_flush
POST /_flush
GET /{index}/_flush
POST /{index}/_flush
路径参数
下表列出了可用的路径参数。所有路径参数均为可选。
参数 | 数据类型 | 描述 |
---|---|---|
<index> | 字符串 | 一个逗号分隔的索引、数据流或索引别名列表,操作将应用于这些对象。支持通配符表达式 (* )。使用 _all 或 * 指定集群中的所有索引和数据流。 |
查询参数
所有参数都是可选的。
参数 | 数据类型 | 描述 |
---|---|---|
allow_no_indices | 布尔型 | 当为 false 时,如果任何通配符表达式或索引别名指向任何已关闭或缺失的索引,请求将返回错误。默认为 true 。 |
expand_wildcards | 字符串 | 指定通配符表达式可以扩展到的索引类型。支持逗号分隔的值。有效值为 - all :扩展到所有开放和关闭的索引,包括隐藏索引。- open :扩展到开放索引。- closed :扩展到关闭索引。- hidden : 展开时包含隐藏索引。必须与 open 、closed 或两者结合使用。- none :不接受通配符表达式。默认值为 open 。 |
force | 布尔型 | 当为 true 时,即使内存中没有索引更改,也会强制执行 Flush 操作。默认为 true 。 |
ignore_unavailable | 布尔型 | 当为 true 时,OpenSearch 会忽略缺失或已关闭的索引。如果为 false ,如果强制合并操作遇到缺失或已关闭的索引,OpenSearch 将返回错误。默认为 false 。 |
wait_if_ongoing | 布尔型 | 当为 true 时,Flush API 在另一个 Flush 请求处于活动状态时不会运行。当为 false 时,如果另一个 Flush 请求处于活动状态,OpenSearch 将返回错误。默认为 true 。 |
示例请求
刷新特定索引
以下示例刷新名为 shakespeare
的索引
POST /shakespeare/_flush
刷新所有索引
以下示例刷新集群中的所有索引
POST /_flush
示例响应
OpenSearch 将响应已确认 Flush 请求的分片数量、已完成请求的分片数量以及失败的分片数量
{
"_shards": {
"total": 10,
"successful": 10,
"failed": 0
}
}