Pat*_*ryk 0 mapping elasticsearch elasticsearch-6
假设我有以下映射:
{
"mappings": {
"_doc": {
"properties": {
"id": {"type": "keyword"},
"params": {
"type": "object",
},
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
params有很多带有数字和文本值的字段。我不想指定它的所有字段,但我想指定所有文本字段都应该是类型,keyword而不是text默认类型并进行分析(我想避免)。
我怎样才能做到这一点?我正在使用 ElasticSearch 6.7
这称为动态模板(请参阅https://www.elastic.co/guide/en/elasticsearch/reference/6.7/dynamic-templates.html)
对于您的问题,您可以按如下方式定义映射:
PUT my_index
{
"mappings": {
"_doc": {
"dynamic_templates": [
{
"strings": {
"match_mapping_type": "string",
"mapping": {
"type": "keyword"
}
}
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
这会将所有检测到的string字段转换为keyword. 如果您只想应用于字段的子集,则可以使用match、unmatch或path_match子句path_unmatch。(有关它们之间的差异,请参阅文档)。
| 归档时间: |
|
| 查看次数: |
1505 次 |
| 最近记录: |