Link Search Menu Expand Document Documentation Menu

清除缓存

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 – 扩展以包含隐藏索引。必须与 openclosedboth 结合使用。

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

清除特定字段的缓存

以下请求清除 fieldafieldb 的字段缓存

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 整数 未能清除缓存的索引分片数量。