我正在寻找有关ElasticSearch中字段名称区分大小写的建议和最佳做法,以及是否存在使字段名不区分大小写的全局配置。 另外,如果可以禁止ES添加不同的字段(如果它不存在于映射中)。Elasticsearch字段名称区分大小写
这里是一个例子来说明这一点;
1-小写
curl -XPUT http://localhost:9200/twitter/user/_mapping -d '{
"user" : {
"properties" : {
"name" : { "type" : "string" }
}
}
}'
2-索引创建包含一个字段 “名称” 映射的文档时,使用不同的情况下,用于名称字段(NAME)
curl -POST http://localhost:9200/twitter/user/1 -d '{
"NAME" : "Yasir"
}'
在Elasticsearch日志,我注意到映射更新了。
[2014-01-26 20:58:19,074][INFO ][cluster.metadata ] [Mad-Dog] [twitter] update_mapping [user] (dynamic)
3-检查映射,你会发现一个新的领域已经被添加“NAME”
curl -XGET http://localhost:9200/twitter/user/_mapping?pretty
{
"user" : {
"properties" : {
"NAME" : {
"type" : "string"
},
"name" : {
"type" : "string"
}
}
}
}
感谢 亚西尔
当您在非现有字段下为第一个文档建立索引时,您建议禁用创建新索引。如果你想禁用动态映射,以便映射不是自动创建的(但你必须预先定义模式),你可以将'index.mapper.dynamic'设置为'false'。结果,未声明的字段将被忽略。如果你想弹性搜索抛出一个错误,把它设置为'strict'。 http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-dynamic-mapping.html – javanna
Thx,不知道! –
不客气,也许你可以相应地修改你的答案,因为它不完全正确? ;) – javanna