当数据架构可能随时间变化时,可以最佳地插入弹性体

时间:2019-11-28 10:45:46

标签: elasticsearch

我需要将数据插入elasticsearch中:数据具有大约50种不同的模式,这些模式将转换为同一elastic index中的不同类型。其中一种类型是UNSTRUCTURED,但是其他模式是不变的,并且很少随时间变化。

问题是:随着时间的推移,我应该如何应对变化的模式:

  1. 我应该验证模式,如果有什么变化,请创建一个新版本并将type更改为<<SomeType>>_v1.x
  2. 只需插入数据,然后让elastic分析和更改就不会相应地进行映射。
    • schama仅通过增加或减少json键的情况下,它会成功创建正确的映射吗?

1 个答案:

答案 0 :(得分:0)

是的,如果启用了动态映射,则每个具有新字段的新文档都将导致现有映射创建新字段,请参考-https://www.elastic.co/guide/en/elasticsearch/reference/current/dynamic-field-mapping.html 另外,自5.5版以来,索引中的多种映射类型已被弃用,而在7.X版中已被完全删除,因此您可能希望一开始就避免使用多类型方法。 https://www.elastic.co/guide/en/elasticsearch/reference/current/removal-of-types.html

尽管要谨慎对待动态映射,但是您可以阅读有关ES在进行动态映射时如何识别每个字段的数据类型的文档,但是在某些情况下,您可能需要手动更新映射,因为在某些情况下,例如嵌套对象,ES无法将嵌套对象数组与简单对象数组区分开,并且如果您在更新映射时未提及显式嵌套的字段类型,则在动态更新映射时会假定其为对象数组