我有一个包含许多实体的静态映射json。 例如
{
"settings": {},
"mappings": {
"MyEntity": {
"properties": {
"date": {
"type": "date",
"format": "dateOptionalTime"
},
"name": {
"type": "string",
},
"tweet": {
"type": "string"
},
"user_id": {
"type": "long"
}
}
}
}
}
“MyEntity”是许多实体之一的例子 我想要的是每次实体都有价值:
"name": {
"type": "string",
},
这将被添加:
"name": {
"type": "string",
"analyzer": "mm_name_analyzer",
"fields": {
"lc": {
"type": "string",
"analyzer": "case_insensitive_sort"
},
"raw": {
"type": "string",
"index": "not_analyzed"
}
}
}
我不想将它添加到定义为字符串的每个实体字段。
有办法吗?
答案 0 :(得分:-1)
这里将indexName替换为您的目的索引或给出索引名称模式
您可以将映射应用于" __ default _"这将确保映射应用于动态映射应用于的独立下的所有类型。
curl -XPUT localhost:9200/_template/nameTemplate -d '{
"template": "indexName",
"mappings": {
"_default_": {
"dynamic_templates": [
{
"name_field": {
"match": "name",
"match_mapping_type": "string",
"mapping": {
"type": "string",
"analyzer": "mm_name_analyzer",
"fields": {
"lc": {
"type": "string",
"analyzer": "case_insensitive_sort"
},
"raw": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}
]
}
}
}'