我有一个自定义对象,我希望将其存储在ElasticSearch中作为索引中自己的类型,但我不希望对象中的任何字段进行分析.我应该怎么做呢?
我一直在使用ElasticSearch NEST客户端,但也可以根据需要手动创建映射.
你有几个选项可以工作.就个人而言,我会选择前两个中的任何一个.如果它是每日索引,则第二个是更好的选择.
预先定义映射并禁用动态字段.这是迄今为止最安全的方法,它可以帮助您避免错误,并且可以防止以后添加字段.
{
"mappings": {
"_default_": {
"_all": {
"enabled": false
}
},
"mytype" : {
"dynamic" : "strict",
"properties" : {
...
}
}
}
}
Run Code Online (Sandbox Code Playgroud)创建索引模板是也禁用动态领域,而且可以持续不断地用相同的映射(S)推出新的指数.
您可以创建分层索引模板,以便多个应用于任何给定索引.
{
"template": "mytimedindex-*",
"settings": {
"number_of_shards": 2
},
"mappings": {
"_default_": {
"_all": {
"enabled": false
}
},
"mytype" : {
"dynamic" : "strict",
"properties" : {
...
}
}
}
}
Run Code Online (Sandbox Code Playgroud)创建动态映射,允许新的领域,但默认所有的strings到not_analyzed:
"dynamic_templates" : [ {
"strings" : {
"mapping" : {
"index" : "not_analyzed",
"type" : "string"
},
"match" : "*",
"match_mapping_type" : "string"
}
} ]
Run Code Online (Sandbox Code Playgroud)
这将允许您动态地向映射添加字段.
| 归档时间: |
|
| 查看次数: |
1434 次 |
| 最近记录: |