将属性从字符串更改为对象后,elasticsearch无法再索引数据对象

时间:2017-04-21 08:45:57

标签: angular elasticsearch firebase firebase-realtime-database isodate

我在Firebase数据库中有一些对象,我正在使用它与ElasticSearch一起执行高级查询。

但是,当我不得不将其中一个对象中的某个属性从字符串organizer: "some name"更改为organizer: {id: "someId", name: "some name"}时,ElasticSearch无法再对该对象编制索引,并说:

[mapper_parsing_exception] failed to parse [organizer] Can't get text on a START_OBJECT

保留为organizer: ""的数据对象会被正确编入索引,但新的结构化对象却没有。我不明白为什么会发生这种情况,因为我没有提供这些对象的自定义映射(我使用Firebase Flashlight来简化它)。

有更多知识的人能让我知道如何解决这个问题吗?由于我无法再搜索这些对象,因此导致了大问题。

1 个答案:

答案 0 :(得分:2)

第一次为organizer: "some name"编制索引时,会创建一个类型为string(或text)的新字段。

现在您尝试索引organizer: {id: "someId", name: "some name"}不再是字符串而是object,因此无效。

您需要删除索引并正确重新索引数据。