把a属性从字符串变成对象后,elasticsearch不能再索引数据对象

After changing a property from a string to an object, elasticsearch can no longer index the data object

我在 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 来简化操作)。

谁能告诉我如何解决这个问题?这导致了很大的问题,因为我不能再搜索那些对象了。

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

现在您尝试索引 organizer: {id: "someId", name: "some name"},它不再是一个字符串,而是一个 object,这样就不起作用了。

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