首页 文章

Elasticsearch - 默认情况下不映射字段

提问于
浏览
2

索引文档时,Elasticsearch将自动为缺少的字段创建映射(内部文档)

是否可以配置(或)是否有一个配置,我们可以指示elasticsearch不要创建缺少的字段,而是忽略 .

基本上,我们使用Java POJO,我们使用相同POJO的实例来索引文档(通过使用GSON库将此实例转换为json),并且还使用此POJO中的某些字段用于某些外部目的 .

因此,当我们设置用于外部目的的那些字段,但将文档发送到Elasticsearch时,也会保存这些附加字段 . 我们想避免这种情况 .

1 回答

  • 2

    是的,可以在Elasticsearch中禁用动态映射功能,以便在摄取新字段时不会动态创建映射 . 从文档:

    动态映射当Elasticsearch遇到文档中以前未知的字段时,它使用动态映射来确定字段的数据类型,并自动将新字段添加到类型映射中 . 有时这是期望的行为,有时则不然 . 也许您不知道以后哪些字段会添加到您的文档中,但您希望它们自动编入索引 . 也许你只是想忽略它们 . 或者 - 特别是如果您使用Elasticsearch作为主数据存储区 - 也许您希望未知字段引发异常以提醒您该问题 . 幸运的是,您可以使用动态设置来控制此行为,该设置接受以下选项:true - 动态添加新字段 - 默认为false - 忽略新字段strict - 如果遇到未知字段则抛出异常

    http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/dynamic-mapping.html

相关问题