ElasticSearch - 如何不存储静态索引中未定义的字段?

时间:2016-08-24 09:01:18

标签: elasticsearch

我使用

在ES中设置了一个带有用户实体的静态索引
{
    "mappings": {
        "_default_": {
            "dynamic": "false"
        },
        "user": {
            "properties": {
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "age": {
                    "type": "integer"
                }
            }
        }
    }
}

当我发布的文档中包含的字段多于索引时,它会将它们保存到ES中 它不会更新映射,但会保存新字段 有没有办法删除不在索引中的字段? 我不想存储未编入索引的字段。

1 个答案:

答案 0 :(得分:0)

在地图中,您需要使用_source filtering

{
  "mappings": {
    "_default_": {
      "dynamic": "false"
    },
    "user": {
      "_source": {
        "includes": [
          "id","name","age"
        ]
      },
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "age": {
          "type": "integer"
        }
      }
    }
  }
}