Elasticsearch 动态类型和 not_analyse 字段
Elasticsearch dynamic type and not_analyse fields
我创建了一个这样的动态模板,因为我有 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
字段的值不应该被索引或分析?如果值是数组和对象数组,not_analyzed
是否有效?
将 index option to no
and 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
}
}
}
]
}
}
}
我创建了一个这样的动态模板,因为我有 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
字段的值不应该被索引或分析?如果值是数组和对象数组,not_analyzed
是否有效?
将 index option to no
and 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
}
}
}
]
}
}
}