在 Mapping 里面,将 dynamic 参数设置成 strict 可以拒绝索引包含未知字段的文档。 此条 Tips 由 medcl 贡献。

index定义问题探讨

Elasticsearch | 作者 devinBing | 发布于2021年06月23日 | 阅读数:1090

版本:7.3.1
当前业务场景有种这样的index结构
{"属性a":"固定类型的数据,比如字符串",
"属性b": {属性b为map对象,即动态的键值对},
"属性c":{属性c为map对象}}
 
请教各位大佬,这种结构应该如何定义属性b和属性c的类型,尝试过定义未nested或者Object,es会自动给属性b或者c里面的每个健定义类型,这样会导致如果同一个index下不同对象的属性b或者c里面的键都不相同,会导致自动映射的字段值达到上限
 
各位大佬有类似的业务场景吗,赐教
已邀请:

zmc - ES PAAS、JuiceFS

赞同来自:

看下这样是否符合需求:
 
PUT zmc0623?include_type_name=false
{
  "mappings":{
    "dynamic": false,
    "properties":{
      "a":{
        "type":"keyword"
      },
      "b": {
        "dynamic": false,
        "properties": {
           "field1": {
              "type": "keyword"
            }, 
            "field2": {
              "type": "keyword"
            }
        }
       }
    }
  }
}

devinBing

赞同来自:

主要问题就是不知道业务数据存储的map里面都有些什么,所以不知道field1、field2是什么

要回复问题请先登录注册