清除缓存
1.0 版引入
清除缓存 API 操作会清除一个或多个索引的缓存。对于数据流,该 API 会清除数据流支持索引的缓存。
如果您使用安全插件,则必须拥有 manage index
权限。
端点
POST /<target>/_cache/clear
路径参数
参数 | 数据类型 | 描述 |
---|---|---|
目标 | 字符串 | 要应用缓存清除的数据流、索引和索引别名的逗号分隔列表。支持通配符表达式 (* )。要指定集群中的所有数据流和索引,请省略此参数或使用 _all 或 * 。可选。 |
查询参数
所有查询参数都是可选的。
参数 | 数据类型 | 描述 |
---|---|---|
allow_no_indices | 布尔型 | 是否忽略不匹配任何索引的通配符、索引别名或 _all 目标(target 路径参数)值。如果为 false ,则如果任何通配符表达式、索引别名或 _all 目标值不匹配任何索引,则请求将返回错误。如果请求目标包含其他开放索引,则此行为也适用。例如,如果目标为 fig*,app* 的请求,当有索引以 fig 开头但没有索引以 app 开头时,会返回错误。默认为 true 。 |
expand_wildcards | 字符串 | 确定通配符表达式可以扩展到的索引类型。接受逗号分隔的多个值,例如 open,hidden 。有效值为all – 扩展到开放、关闭和隐藏索引。open – 仅扩展到开放索引。closed – 仅扩展到关闭索引hidden – 扩展以包含隐藏索引。必须与 open 、closed 或 both 结合使用。none – 不接受扩展。默认为 open 。 |
fielddata | 布尔型 | 如果为 true ,则清除字段缓存。使用 fields 参数清除特定字段的缓存。默认为 true 。 |
fields | 字符串 | 与 fielddata 参数结合使用。要从缓存中清除的字段名称的逗号分隔列表。不支持对象或字段别名。默认为所有字段。 |
file | 布尔型 | 如果为 true ,则清除具有搜索角色的节点上文件缓存中未使用的条目。默认为 false 。 |
index | 字符串 | 要从缓存中清除的索引名称的逗号分隔列表。 |
ignore_unavailable | 布尔型 | 如果为 true ,OpenSearch 会忽略缺失或关闭的索引。默认为 false 。 |
query | 布尔型 | 如果为 true ,则清除查询缓存。默认为 true 。 |
request | 布尔型 | 如果为 true ,则清除请求缓存。默认为 true 。 |
示例请求
以下示例请求展示了多种清除缓存 API 的使用方法。
清除特定缓存
以下请求仅清除字段缓存
POST /my-index/_cache/clear?fielddata=true
以下请求仅清除查询缓存
POST /my-index/_cache/clear?query=true
以下请求仅清除请求缓存
POST /my-index/_cache/clear?request=true
清除特定字段的缓存
以下请求清除 fielda
和 fieldb
的字段缓存
POST /my-index/_cache/clear?fields=fielda,fieldb
清除特定数据流或索引的缓存
以下请求清除两个特定索引的缓存
POST /my-index,my-index2/_cache/clear
清除所有数据流和索引的缓存
以下请求清除所有数据流和索引的缓存
POST /_cache/clear
清除具备搜索功能的节点上缓存中未使用的条目
POST /*/_cache/clear?file=true
示例响应
POST /books,hockey/_cache/clear
请求返回以下字段
{
"_shards" : {
"total" : 4,
"successful" : 2,
"failed" : 0
}
}
响应正文字段
POST /books,hockey/_cache/clear
请求返回以下响应字段
字段 | 数据类型 | 描述 |
---|---|---|
_shards | 对象 | 分片信息。 |
total | 整数 | 分片总数。 |
successful | 整数 | 成功清除缓存的索引分片数量。 |
failed | 整数 | 未能清除缓存的索引分片数量。 |