【发布时间】:2016-11-24 11:54:12
【问题描述】:
我试图简单地禁用在创建索引时未在映射中明确定义的任何字段的动态映射。什么都行不通,所以我什至尝试了他们文档中的示例
PUT my_index
{
"mappings": {
"my_type": {
"dynamic": false,
"properties": {
"user": {
"type": "text"
}
}
}
}
}
做了一个测试插入:
POST my_index/my_type
{
"user": "tester",
"some_unknown_field": "lsdkfjsd"
}
然后搜索索引显示:
{
"took": 1,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 1,
"hits": [
{
"_index": "my_index",
"_type": "my_type",
"_id": "AViPrfwVko8c8Q3co8Qz",
"_score": 1,
"_source": {
"user": "tester",
"some_unknown_field": "lsdkfjsd"
}
}
]
}
}
我希望“some_unknown_field”不会被索引,因为它没有在映射中定义。那么为什么它仍然被索引?我错过了什么吗?
更新
事实证明,目前在 5.0.0 版本中无法执行我想要的操作,因此我在发送到 elasticsearch 之前删除了我的应用程序中的字段并获得了相同的最终结果。
【问题讨论】:
标签: elasticsearch