刷新 API
编辑刷新 API编辑
刷新一个或多个数据流或索引。
response = client.indices.flush( index: 'my-index-000001' ) puts response
POST /my-index-000001/_flush
描述编辑
刷新数据流或索引是确保当前仅存储在 事务日志 中的任何数据也永久存储在 Lucene 索引中的过程。重新启动时,Elasticsearch 会将事务日志中任何未刷新的操作重放到 Lucene 索引中,以将其恢复到重新启动前的状态。Elasticsearch 会根据需要自动触发刷新,使用启发式方法在未刷新事务日志的大小与执行每次刷新的成本之间进行权衡。
每个操作一旦刷新,就会永久存储在 Lucene 索引中。这可能意味着不需要在事务日志中维护它的额外副本。事务日志由多个文件(称为“代”)组成,Elasticsearch 会在不再需要任何代文件时将其删除,从而释放磁盘空间。
也可以使用 flush API 触发一个或多个索引上的刷新,尽管用户很少需要直接调用此 API。如果您在索引一些文档后调用 flush API,则成功的响应表示 Elasticsearch 已刷新在调用 flush API 之前索引的所有文档。
路径参数编辑
-
<target>
- (可选,字符串)要刷新的数据流、索引和别名的逗号分隔列表。支持通配符 (
*
)。要刷新所有数据流和索引,请省略此参数或使用*
或_all
。
查询参数编辑
-
allow_no_indices
-
(可选,布尔值)如果为
false
,则如果任何通配符表达式、索引别名 或_all
值仅针对缺少或已关闭的索引,则请求将返回错误。即使请求针对其他打开的索引,此行为也适用。例如,如果索引以foo
开头但没有索引以bar
开头,则针对foo*,bar*
的请求将返回错误。默认为
true
。 -
expand_wildcards
-
(可选,字符串)通配符模式可以匹配的索引类型。如果请求可以针对数据流,则此参数确定通配符表达式是否匹配隐藏的数据流。支持逗号分隔的值,例如
open,hidden
。有效值为:-
all
- 匹配任何数据流或索引,包括 隐藏的 数据流或索引。
-
open
- 匹配打开的、非隐藏的索引。也匹配任何非隐藏的数据流。
-
closed
- 匹配关闭的、非隐藏的索引。也匹配任何非隐藏的数据流。数据流不能关闭。
-
hidden
- 匹配隐藏的数据流和隐藏的索引。必须与
open
、closed
或两者结合使用。 -
none
- 不接受通配符模式。
默认为
open
。 -
-
force
-
(可选,布尔值)如果为
true
,则即使没有要提交到索引的更改,请求也会强制刷新。默认为false
。您可以使用此参数增加事务日志的代号。
此参数被视为内部参数。
-
ignore_unavailable
- (可选,布尔值)如果为
false
,则如果请求针对缺少或已关闭的索引,则请求将返回错误。默认为false
。 -
wait_if_ongoing
-
(可选,布尔值)如果为
true
,则刷新操作将在另一个刷新操作运行时阻塞,直到执行完毕。如果为
false
,则如果您在另一个刷新操作运行时请求刷新,Elasticsearch 将返回错误。默认为
true
。
示例编辑
刷新特定的数据流或索引编辑
response = client.indices.flush( index: 'my-index-000001' ) puts response
POST /my-index-000001/_flush
刷新多个数据流和索引编辑
response = client.indices.flush( index: 'my-index-000001,my-index-000002' ) puts response
POST /my-index-000001,my-index-000002/_flush
刷新集群中的所有数据流和索引编辑
resp = client.indices.flush() print(resp)
response = client.indices.flush puts response
POST /_flush