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

时间:2014-06-27 09:12:41

标签: java json elasticsearch

在索引文档时,Elasticsearch会自动为缺少的字段(文档内部)

创建映射

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

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

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

1 个答案:

答案 0 :(得分:2)

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

  

动态映射

     

当Elasticsearch遇到以前未知的字段时   文档,它使用动态映射来确定数据类型   字段并自动将新字段添加到类型映射。

     

有时这是理想的行为,有时却不是。   也许您不知道哪些字段会添加到您的文档中   稍后,但您希望它们自动编入索引。也许你   只是想忽略它们。或者 - 尤其是如果你正在使用的话   Elasticsearch作为主要数据存储 - 也许您想要未知字段   抛出异常以提醒您该问题。

     

幸运的是,您可以使用动态设置控制此行为,   它接受以下选项:

     
      
  • true - 动态添加新字段 - 默认

  •   
  • false - 忽略新字段

  •   
  • strict - 遇到未知字段时抛出异常

  •   

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