清除缓存 API

编辑

清除一个或多个索引的缓存。对于数据流,该 API 会清除数据流的后备索引的缓存。

resp = client.indices.clear_cache(
    index="my-index-000001",
)
print(resp)
response = client.indices.clear_cache(
  index: 'my-index-000001'
)
puts response
const response = await client.indices.clearCache({
  index: "my-index-000001",
});
console.log(response);
POST /my-index-000001/_cache/clear

请求

编辑

POST /<目标>/_cache/clear

POST /_cache/clear

先决条件

编辑
  • 如果启用了 Elasticsearch 安全功能,您必须拥有目标数据流、索引或别名的 manage 索引权限

路径参数

编辑
<目标>
(可选,字符串)用逗号分隔的数据流、索引和别名列表,用于限制请求。支持通配符 (*)。要将所有数据流和索引作为目标,请省略此参数或使用 *_all

查询参数

编辑
allow_no_indices

(可选,布尔值)如果为 false,则当任何通配符表达式、索引别名_all 值仅以缺失或关闭的索引为目标时,请求将返回错误。即使请求以其他打开的索引为目标,此行为也适用。例如,如果索引以 foo 开头,但没有索引以 bar 开头,则以 foo*,bar* 为目标的请求将返回错误。

默认为 true

expand_wildcards

(可选,字符串)通配符模式可以匹配的索引类型。如果请求可以将数据流作为目标,则此参数确定通配符表达式是否匹配隐藏数据流。支持逗号分隔的值,例如 open,hidden。有效值为

all
匹配任何数据流或索引,包括隐藏的数据流或索引。
open
匹配打开的、非隐藏的索引。也匹配任何非隐藏的数据流。
closed
匹配关闭的、非隐藏的索引。也匹配任何非隐藏的数据流。数据流无法关闭。
hidden
匹配隐藏的数据流和隐藏的索引。必须与 openclosed 或两者组合使用。
none
不接受通配符模式。

默认为 open

fielddata

(可选,布尔值)如果为 true,则清除字段缓存。

使用 fields 参数仅清除特定字段的缓存。

fields

(可选,字符串)用逗号分隔的字段名称列表,用于限制 fielddata 参数。

默认为所有字段。

此参数支持对象或字段别名。

index
(可选,字符串)用逗号分隔的索引名称列表,用于限制请求。
ignore_unavailable
(可选,布尔值)如果为 false,则当请求的目标是缺失或关闭的索引时,请求将返回错误。默认为 false
query
(可选,布尔值)如果为 true,则清除查询缓存。
request
(可选,布尔值)如果为 true,则清除请求缓存。

示例

编辑

清除特定缓存

编辑

默认情况下,清除缓存 API 会清除所有缓存。您可以通过将以下查询参数设置为 true 来仅清除特定缓存

  • fielddata
  • query
  • request
resp = client.indices.clear_cache(
    index="my-index-000001",
    fielddata=True,
)
print(resp)

resp1 = client.indices.clear_cache(
    index="my-index-000001",
    query=True,
)
print(resp1)

resp2 = client.indices.clear_cache(
    index="my-index-000001",
    request=True,
)
print(resp2)
response = client.indices.clear_cache(
  index: 'my-index-000001',
  fielddata: true
)
puts response

response = client.indices.clear_cache(
  index: 'my-index-000001',
  query: true
)
puts response

response = client.indices.clear_cache(
  index: 'my-index-000001',
  request: true
)
puts response
const response = await client.indices.clearCache({
  index: "my-index-000001",
  fielddata: "true",
});
console.log(response);

const response1 = await client.indices.clearCache({
  index: "my-index-000001",
  query: "true",
});
console.log(response1);

const response2 = await client.indices.clearCache({
  index: "my-index-000001",
  request: "true",
});
console.log(response2);
POST /my-index-000001/_cache/clear?fielddata=true  
POST /my-index-000001/_cache/clear?query=true      
POST /my-index-000001/_cache/clear?request=true    

仅清除字段缓存

仅清除查询缓存

仅清除请求缓存

清除特定字段的缓存

编辑

要仅清除特定字段的缓存,请使用 fields 查询参数。

resp = client.indices.clear_cache(
    index="my-index-000001",
    fields="foo,bar",
)
print(resp)
response = client.indices.clear_cache(
  index: 'my-index-000001',
  fields: 'foo,bar'
)
puts response
const response = await client.indices.clearCache({
  index: "my-index-000001",
  fields: "foo,bar",
});
console.log(response);
POST /my-index-000001/_cache/clear?fields=foo,bar   

清除 foobar 字段的缓存

清除多个数据流和索引的缓存

编辑
resp = client.indices.clear_cache(
    index="my-index-000001,my-index-000002",
)
print(resp)
response = client.indices.clear_cache(
  index: 'my-index-000001,my-index-000002'
)
puts response
const response = await client.indices.clearCache({
  index: "my-index-000001,my-index-000002",
});
console.log(response);
POST /my-index-000001,my-index-000002/_cache/clear

清除所有数据流和索引的缓存

编辑
resp = client.indices.clear_cache()
print(resp)
response = client.indices.clear_cache
puts response
const response = await client.indices.clearCache();
console.log(response);
POST /_cache/clear