获取字段映射 API
编辑获取字段映射 API编辑
检索一个或多个字段的 映射定义。对于数据流,API 会检索流的备份索引的字段映射。
如果您不需要 完整的映射,或者索引映射包含大量字段,则此 API 很有用。
response = client.indices.get_field_mapping( index: 'my-index-000001', fields: 'user' ) puts 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
索引。
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
PUT /publications { "mappings": { "properties": { "id": { "type": "text" }, "title": { "type": "text" }, "abstract": { "type": "text" }, "author": { "properties": { "id": { "type": "text" }, "name": { "type": "text" } } } } } }
以下将仅返回字段 title
的映射
response = client.indices.get_field_mapping( index: 'publications', fields: 'title' ) puts response
GET publications/_mapping/field/title
API 返回以下响应
{ "publications": { "mappings": { "title": { "full_name": "title", "mapping": { "title": { "type": "text" } } } } } }
指定字段编辑
获取映射 API 允许您指定逗号分隔的字段列表。
例如,要选择 author
字段的 id
,您必须使用其完整名称 author.id
。
response = client.indices.get_field_mapping( index: 'publications', fields: 'author.id,abstract,name' ) puts 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 还支持通配符表示法。
response = client.indices.get_field_mapping( index: 'publications', fields: 'a*' ) puts 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
字段的映射。
response = client.indices.get_field_mapping( index: 'my-index-000001,my-index-000002', fields: 'message' ) puts response
GET /my-index-000001,my-index-000002/_mapping/field/message
以下请求检索集群中任何数据流或索引中的 message
和 user.id
字段的映射。
response = client.indices.get_field_mapping( index: '_all', fields: 'message' ) puts response
GET /_all/_mapping/field/message
以下请求检索集群中任何数据流或索引中具有 id
属性的字段的映射。
response = client.indices.get_field_mapping( index: '_all', fields: '*.id' ) puts response
GET /_all/_mapping/field/*.id