获取映射 API

编辑

检索一个或多个索引的映射定义。 对于数据流,该 API 会检索流的后备索引的映射。

resp = client.indices.get_mapping(
    index="my-index-000001",
)
print(resp)
response = client.indices.get_mapping(
  index: 'my-index-000001'
)
puts response
res, err := es.Indices.GetMapping(es.Indices.GetMapping.WithIndex("my-index-000001"))
fmt.Println(res, err)
const response = await client.indices.getMapping({
  index: "my-index-000001",
});
console.log(response);
GET /my-index-000001/_mapping

请求

编辑

GET /_mapping

GET /<target>/_mapping

先决条件

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

路径参数

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

查询参数

编辑
allow_no_indices

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

默认为 true

expand_wildcards

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

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

默认为 open

ignore_unavailable
(可选,布尔值)如果为 false,则如果请求以丢失或关闭的索引为目标,则请求将返回错误。默认为 false
local
(可选,布尔值)如果为 true,则请求仅从本地节点检索信息。默认为 false,这意味着从主节点检索信息。
master_timeout
(可选,时间单位)等待主节点的期限。如果主节点在超时到期之前不可用,则请求将失败并返回错误。默认为 30s。也可以设置为 -1 以表示请求永远不应超时。

示例

编辑

多个数据流和索引

编辑

获取映射 API 可用于通过单个调用获取多个数据流或索引。 API 的一般用法遵循以下语法: host:port/<target>/_mapping,其中 <target> 可以接受逗号分隔的名称列表。要获取集群中所有数据流和索引的映射,请对 <target> 使用 _all*,或省略 <target> 参数。以下是一些示例

resp = client.indices.get_mapping(
    index="my-index-000001,my-index-000002",
)
print(resp)
response = client.indices.get_mapping(
  index: 'my-index-000001,my-index-000002'
)
puts response
const response = await client.indices.getMapping({
  index: "my-index-000001,my-index-000002",
});
console.log(response);
GET /my-index-000001,my-index-000002/_mapping

如果要获取集群中所有索引的映射,以下示例是等效的

$params = [
    'index' => '*',
];
$response = $client->indices()->getMapping($params);
$params = [
    'index' => '_all',
];
$response = $client->indices()->getMapping($params);
$response = $client->indices()->getMapping();
resp = client.indices.get_mapping(
    index="*",
)
print(resp)

resp1 = client.indices.get_mapping(
    index="_all",
)
print(resp1)

resp2 = client.indices.get_mapping()
print(resp2)
response = client.indices.get_mapping(
  index: '*'
)
puts response

response = client.indices.get_mapping(
  index: '_all'
)
puts response

response = client.indices.get_mapping
puts response
{
	res, err := es.Indices.GetMapping(es.Indices.GetMapping.WithIndex("*"))
	fmt.Println(res, err)
}

{
	res, err := es.Indices.GetMapping(es.Indices.GetMapping.WithIndex("_all"))
	fmt.Println(res, err)
}

{
	res, err := es.Indices.GetMapping()
	fmt.Println(res, err)
}
const response = await client.indices.getMapping({
  index: "*",
});
console.log(response);

const response1 = await client.indices.getMapping({
  index: "_all",
});
console.log(response1);

const response2 = await client.indices.getMapping();
console.log(response2);
GET /*/_mapping

GET /_all/_mapping

GET /_mapping