【问题标题】:Updating ElasticSearch mappings field type with existing data使用现有数据更新 ElasticSearch 映射字段类型
【发布时间】:2017-07-28 04:30:04
【问题描述】:

我存储了一些字段,为了简单起见,我们将有问题的字段称为“年龄”。最初 ES 为我创建了索引,但它最终为“年龄”选择了错误的字段类型。它现在是字符串类型而不是数字类型。我知道,我应该自己定义映射,并强制发送的数据值始终为所有字符串或数值。

我现在拥有的是一个包含大量数据的索引,它使用“字符串”类型来表示年龄,其值如下:1、10、“na”等。

现在我的问题是:如果我要将映射从字符串更改为整数,索引是否会在更新时对现有数据值(例如“na”)有任何问题??

我只是想在开始创建游乐场环境以使用示例数据集进行测试之前先问一下。

【问题讨论】:

  • 您是否先创建了映射?
  • 不,我还没有创建一个映射开始。

标签: amazon-web-services elasticsearch kibana elastic-stack


【解决方案1】:

你可以根据doc更新什么:

  • 可以将新属性添加到对象数据类型字段。
  • 可以将新的多字段添加到现有字段。
  • doc_values 可以禁用,但不能启用。
  • ignore_above 参数可以更新。

否则恐怕你将不得不创建一个新的映射并重新索引你的数据,例如看到这个post

【讨论】:

  • 我不介意重新索引但担心混合数据值。展望未来,我希望年龄字段成为数字字段,但不确定如何处理现有的字符串和数字数据组合。
  • 这就是为什么你应该为你的数据定义一个映射(我知道这可能需要一些时间)而不是把它推迟到 elasticsearch
  • 毫无疑问。但你认为我有哪些选择?
  • 我要做的是创建一个新索引,创建正确的映射,然后使用 Reindex API,还要记住仔细阅读有关映射的文档,因为重新索引可能会很痛苦一旦您的数据库变得庞大,请参阅 reindex api 文档:elastic.co/guide/en/elasticsearch/reference/current/…
猜你喜欢
  • 2020-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多