我创建了一个像这样的动态模板,因为我有dynamic types
:
{
"template": "test-*", //match any index that starts with 'test-'
"settings": {
"number_of_shards": 5
},
"mappings": {
"_default_": {
"_all": {
"enabled": false
},
"dynamic_templates": [
{
"test_id": {
"match": "test_id", // This is an Array of strings field ["a","b"]
"mapping": {
"type": "string",
"index": "not_analyzed"
}
}
},
{
"branch_id": {
"match": "branch_id", // This is Array of objects field [{"a": "b"}, {"c": "d"}]
"mapping": {
"type": "string",
"index": "not_analyzed"
}
}
}
]
}
}
}
示例文件:
{
"_index": "test-data13",
"_type": "025e179ccfd79cacd92f61bb17bddcf8abf83dc2",
"_id": "847",
"_version": 1,
"_score": 1,
"_source": {
"test_id": [
"test_id_test_10123" // disable indexing or full text search for this Array of string
],
"branch_id": [ // disable indexing or full text search for this Array of hashes
{
"1": "test_id_test_10123"
},
{
"2": "test_id_test_10124"
}
]
}
}
如何以不对带有值的
test_id
字段和branch_id
字段进行索引或分析的方式更改此模板?如果值是一个Array和Object Array,not_analyzed
可以工作吗?
最佳答案
将index选项设置为no
并将enabled设置为false
应当确保未索引test_id
数组和branch_id
对象。
示例:
{
"template": "test-*",
"settings": {
"number_of_shards": 5
},
"mappings": {
"_default_": {
"_all": {
"enabled": false
},
"dynamic_templates": [
{
"test_id": {
"match": "test_id",
"mapping": {
"index": "no"
}
}
},
{
"branch_id": {
"match": "branch_id",
"mapping": {
"index": "no",
"enabled": false
}
}
}
]
}
}
}
关于elasticsearch - Elasticsearch动态类型和not_analyse字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39379434/