【发布时间】:2017-08-30 02:36:27
【问题描述】:
我的应用程序中的许多字符串字段需要在 elasticsearch 5.3 中动态映射。所有以 id 或 ids 结尾的新字段都应该由 elastic 自动映射和索引:
"_my_propertyId":
{
"type": "keyword"
}
我为这样的索引/类型定义了一个动态模板
"mappings": {
"my_type": {
"dynamic_templates": [
{
"id_as_keywords": {
"match": "*id|*Id|*Ids",
"match_mapping_type": "string",
"mapping": {
"type": "keyword"
}
}
}
]
然而,elastic 仍然会创建如下属性:
"_someIds": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
我不确定我做错了什么,或者为什么这是现在动态字符串字段的默认映射。但是,我需要能够动态地将所有以 id 或 ids 结尾的属性映射为关键字,而不需要 ignore_above 和完全索引,以便我可以使用 searchAPI 搜索它们。想法?为什么现在这是默认的字符串映射(我理解关键字/文本的介绍,但仍然如此)?
更新
找到一篇关于这些默认设置的好文章:
【问题讨论】:
标签: java elasticsearch mapping