我在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来简化它)。
有更多知识的人能让我知道如何解决这个问题吗?由于我无法再搜索这些对象,因此导致了大问题。
答案 0 :(得分:2)
第一次为organizer: "some name"
编制索引时,会创建一个类型为string
(或text
)的新字段。
现在您尝试索引organizer: {id: "someId", name: "some name"}
不再是字符串而是object
,因此无效。
您需要删除索引并正确重新索引数据。