gpt4 book ai didi

elasticsearch - 如何在 elasticsearch 中定义一个不接受映射字段以外的字段的映射?

转载 作者:行者123 更新时间:2023-11-29 02:47:12 24 4
gpt4 key购买 nike

好的,在我的 elastisearch 中,我使用以下索引映射:

{

"mappings": {
"mytype": {
"type":"object",
"dynamic" : "false",
"properties": {
"name": {
"type": "string"
},
"address": {
"type": "string"
},
"published": {
"type": "date"
}

}
}
}
}

它有效。事实上,如果我在“已发布”字段中输入格式错误的日期,它会提示并失败。我还有以下配置:

...
node.name : node1
index.mapper.dynamic : false
index.mapper.dynamic.strict : true
...

如果没有映射,我就无法真正使用该类型。问题是如果我插入类似的东西:

{ “名称”:“boh58585”, “地址”:“hiohio”, "发表": "2014-4-4", “测试”:“hophiophop”

它会很高兴地接受它。这不是我期望的行为,因为字段 test 不在映射中。如何将文档的字段限制为仅映射中的字段???

最佳答案

"dynamic": false 的使用告诉 Elasticsearch 永远不允许更改索引的映射。如果您希望在尝试使用定义映射之外的字段索引新文档时引发错误,请改用 "dynamic": "strict"

来自文档:“动态参数也可以设置为严格,这意味着不仅不会将新字段引入映射,解析(索引)具有此类新字段的文档也会失败。”

既然你已经在设置中定义了它,我猜想从映射定义中完全省略 dynamic 将默认为 "dynamic": "strict" .

关于elasticsearch - 如何在 elasticsearch 中定义一个不接受映射字段以外的字段的映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18471542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com