获取字段映射 API
编辑获取字段映射 API
编辑检索一个或多个字段的映射定义。对于数据流,API 会检索流的后备索引的字段映射。
如果您不需要完整的映射,或者索引映射包含大量字段,则此 API 非常有用。
resp = client.indices.get_field_mapping( index="my-index-000001", fields="user", ) print(resp)
response = client.indices.get_field_mapping( index: 'my-index-000001', fields: 'user' ) puts response
const response = await client.indices.getFieldMapping({ index: "my-index-000001", fields: "user", }); console.log(response);
GET /my-index-000001/_mapping/field/user
路径参数
编辑-
<target>
- (可选,字符串)用于限制请求的数据流、索引和别名的逗号分隔列表。支持通配符 (
*
)。要定位所有数据流和索引,请省略此参数或使用*
或_all
。 -
<field>
- (可选,字符串)用于限制返回信息的字段的逗号分隔列表或通配符表达式。
查询参数
编辑-
allow_no_indices
-
(可选,布尔值)如果为
false
,则如果任何通配符表达式、索引别名或_all
值仅定位缺失或关闭的索引,则请求会返回错误。即使请求定位其他打开的索引,此行为也适用。例如,如果索引以foo
开头,但没有索引以bar
开头,则定位foo*,bar*
的请求会返回错误。默认为
true
。 -
expand_wildcards
-
(可选,字符串)通配符模式可以匹配的索引类型。如果请求可以定位数据流,则此参数确定通配符表达式是否匹配隐藏的数据流。支持逗号分隔的值,例如
open,hidden
。有效值为-
all
- 匹配任何数据流或索引,包括隐藏的数据流或索引。
-
open
- 匹配打开的、非隐藏的索引。也匹配任何非隐藏的数据流。
-
closed
- 匹配关闭的、非隐藏的索引。也匹配任何非隐藏的数据流。数据流无法关闭。
-
hidden
- 匹配隐藏的数据流和隐藏的索引。必须与
open
、closed
或两者结合使用。 -
none
- 不接受通配符模式。
-
-
ignore_unavailable
- (可选,布尔值)如果为
false
,则如果请求定位缺失或关闭的索引,则会返回错误。默认为false
。 -
include_defaults
- (可选,布尔值)如果为
true
,则响应会包含默认的映射值。默认为false
。
示例
编辑包含索引设置的示例
编辑您可以在创建新索引时提供字段映射。以下创建索引 API 请求会创建具有多个字段映射的 publications
索引。
resp = client.indices.create( index="publications", mappings={ "properties": { "id": { "type": "text" }, "title": { "type": "text" }, "abstract": { "type": "text" }, "author": { "properties": { "id": { "type": "text" }, "name": { "type": "text" } } } } }, ) print(resp)
response = client.indices.create( index: 'publications', body: { mappings: { properties: { id: { type: 'text' }, title: { type: 'text' }, abstract: { type: 'text' }, author: { properties: { id: { type: 'text' }, name: { type: 'text' } } } } } } ) puts response
const response = await client.indices.create({ index: "publications", mappings: { properties: { id: { type: "text", }, title: { type: "text", }, abstract: { type: "text", }, author: { properties: { id: { type: "text", }, name: { type: "text", }, }, }, }, }, }); console.log(response);
PUT /publications { "mappings": { "properties": { "id": { "type": "text" }, "title": { "type": "text" }, "abstract": { "type": "text" }, "author": { "properties": { "id": { "type": "text" }, "name": { "type": "text" } } } } } }
以下内容仅返回字段 title
的映射
resp = client.indices.get_field_mapping( index="publications", fields="title", ) print(resp)
response = client.indices.get_field_mapping( index: 'publications', fields: 'title' ) puts response
const response = await client.indices.getFieldMapping({ index: "publications", fields: "title", }); console.log(response);
GET publications/_mapping/field/title
API 返回以下响应
{ "publications": { "mappings": { "title": { "full_name": "title", "mapping": { "title": { "type": "text" } } } } } }
指定字段
编辑获取映射 API 允许您指定字段的逗号分隔列表。
例如,要选择 author
字段的 id
,您必须使用其全名 author.id
。
resp = client.indices.get_field_mapping( index="publications", fields="author.id,abstract,name", ) print(resp)
response = client.indices.get_field_mapping( index: 'publications', fields: 'author.id,abstract,name' ) puts response
const response = await client.indices.getFieldMapping({ index: "publications", fields: "author.id,abstract,name", }); console.log(response);
GET publications/_mapping/field/author.id,abstract,name
返回
{ "publications": { "mappings": { "author.id": { "full_name": "author.id", "mapping": { "id": { "type": "text" } } }, "abstract": { "full_name": "abstract", "mapping": { "abstract": { "type": "text" } } } } } }
获取字段映射 API 还支持通配符表示法。
resp = client.indices.get_field_mapping( index="publications", fields="a*", ) print(resp)
response = client.indices.get_field_mapping( index: 'publications', fields: 'a*' ) puts response
const response = await client.indices.getFieldMapping({ index: "publications", fields: "a*", }); console.log(response);
GET publications/_mapping/field/a*
返回
{ "publications": { "mappings": { "author.name": { "full_name": "author.name", "mapping": { "name": { "type": "text" } } }, "abstract": { "full_name": "abstract", "mapping": { "abstract": { "type": "text" } } }, "author.id": { "full_name": "author.id", "mapping": { "id": { "type": "text" } } } } } }
多个目标和字段
编辑获取字段映射 API 可用于通过单个请求从多个数据流或索引中获取多个字段的映射。
<target>
和 <field>
请求路径参数都支持逗号分隔的列表和通配符表达式。
您可以省略 <target>
参数,或使用值 *
或 _all
来定位集群中的所有数据流和索引。
同样,您可以省略 <field>
参数,或使用值 *
来检索目标数据流或索引中所有字段的映射。但是,<field>
参数不支持 _all
值。
例如,以下请求检索名为 my-index-000001
或 my-index-000002
的任何数据流或索引中 message
字段的映射。
resp = client.indices.get_field_mapping( index="my-index-000001,my-index-000002", fields="message", ) print(resp)
response = client.indices.get_field_mapping( index: 'my-index-000001,my-index-000002', fields: 'message' ) puts response
const response = await client.indices.getFieldMapping({ index: "my-index-000001,my-index-000002", fields: "message", }); console.log(response);
GET /my-index-000001,my-index-000002/_mapping/field/message
以下请求检索集群中任何数据流或索引中的 message
和 user.id
字段的映射。
resp = client.indices.get_field_mapping( index="_all", fields="message", ) print(resp)
response = client.indices.get_field_mapping( index: '_all', fields: 'message' ) puts response
const response = await client.indices.getFieldMapping({ index: "_all", fields: "message", }); console.log(response);
GET /_all/_mapping/field/message
以下请求检索集群中任何数据流或索引中具有 id
属性的字段的映射。
resp = client.indices.get_field_mapping( index="_all", fields="*.id", ) print(resp)
response = client.indices.get_field_mapping( index: '_all', fields: '*.id' ) puts response
const response = await client.indices.getFieldMapping({ index: "_all", fields: "*.id", }); console.log(response);
GET /_all/_mapping/field/*.id