Elasticsearch 动态模板映射
Elasticsearch Dynamic Template Mapping
我正在使用 Elasticsearch 7.1 版并尝试使用动态模板映射,但似乎无法正常工作。索引接受我的映射并成功加载数据,但数据未根据我提供的映射编制索引,这让我怀疑我的映射有误。
这是我要索引的文档的简化版本:
{
"id": "foo",
"breadcrumb": {
"en-US": [
{
"name": "one",
"url": "/path/1"
},
{
"name": "two",
"url": "/path/2"
}
],
"es-ES": [
{
"name": "uno",
"url": "/path/1"
},
{
"name": "dos",
"url": "/path/2"
}
]
}
}
这是映射的简化版本:
{
"dynamic": "false",
"properties": {
"id": {"type": "keyword"}
},
"dynamic_templates": [
{
"breadcrumb_template": {
"path_match": "breadcrumb.*",
"match_mapping_type": "object",
"mapping": {
"type": "nested",
"properties": {
"url": {"type": "keyword"},
"name": {"type": "keyword"}
}
}
}
}
]
}
我知道我可以明确地映射它,但我会为 "breadcrumb" 下的每个不同键重复相同的结构,我宁愿避免这种情况。
dynamic: false
它不适用于 dynamic_templates。字段已保存并显示在 _source
中,但不可搜索。
如果您在属性中添加带有 dynamic: true
的 breadcrumb
字段,应该没问题。
"properties": {
"id": {"type": "keyword"},
"breadcrumb": {"type": "object", "dynamic": true}
}
我正在使用 Elasticsearch 7.1 版并尝试使用动态模板映射,但似乎无法正常工作。索引接受我的映射并成功加载数据,但数据未根据我提供的映射编制索引,这让我怀疑我的映射有误。
这是我要索引的文档的简化版本:
{
"id": "foo",
"breadcrumb": {
"en-US": [
{
"name": "one",
"url": "/path/1"
},
{
"name": "two",
"url": "/path/2"
}
],
"es-ES": [
{
"name": "uno",
"url": "/path/1"
},
{
"name": "dos",
"url": "/path/2"
}
]
}
}
这是映射的简化版本:
{
"dynamic": "false",
"properties": {
"id": {"type": "keyword"}
},
"dynamic_templates": [
{
"breadcrumb_template": {
"path_match": "breadcrumb.*",
"match_mapping_type": "object",
"mapping": {
"type": "nested",
"properties": {
"url": {"type": "keyword"},
"name": {"type": "keyword"}
}
}
}
}
]
}
我知道我可以明确地映射它,但我会为 "breadcrumb" 下的每个不同键重复相同的结构,我宁愿避免这种情况。
dynamic: false
它不适用于 dynamic_templates。字段已保存并显示在 _source
中,但不可搜索。
如果您在属性中添加带有 dynamic: true
的 breadcrumb
字段,应该没问题。
"properties": {
"id": {"type": "keyword"},
"breadcrumb": {"type": "object", "dynamic": true}
}