在索引文档时,Elasticsearch会自动为缺少的字段(文档内部)
创建映射是否可以配置(或)是否有一个配置,我们可以指示elasticsearch不要创建缺少的字段,而是忽略。
基本上,我们使用Java POJO,我们使用相同POJO的实例来索引文档(通过使用GSON库将此实例转换为json),并且还将此POJO中的某些字段用于某些外部目的。
因此,当我们设置用于外部目的的那些字段,但将文档发送到Elasticsearch时,也会保存这些附加字段。我们想避免这种情况。
答案 0 :(得分:2)
是的,可以在Elasticsearch中禁用动态映射功能,以便在摄取新字段时不会动态创建映射。来自文档:
动态映射
当Elasticsearch遇到以前未知的字段时 文档,它使用动态映射来确定数据类型 字段并自动将新字段添加到类型映射。
有时这是理想的行为,有时却不是。 也许您不知道哪些字段会添加到您的文档中 稍后,但您希望它们自动编入索引。也许你 只是想忽略它们。或者 - 尤其是如果你正在使用的话 Elasticsearch作为主要数据存储 - 也许您想要未知字段 抛出异常以提醒您该问题。
幸运的是,您可以使用动态设置控制此行为, 它接受以下选项:
true - 动态添加新字段 - 默认
false - 忽略新字段
strict - 遇到未知字段时抛出异常
http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/dynamic-mapping.html