把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
,这样就不起作用了。
您需要删除索引并正确地重新索引数据。
我在 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
,这样就不起作用了。
您需要删除索引并正确地重新索引数据。