【问题标题】:After changing a property from a string to an object, elasticsearch can no longer index the data object将属性从字符串更改为对象后,elasticsearch 无法再索引数据对象
【发布时间】:2017-04-21 16:53:44
【问题描述】:

我在 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 使其更容易)。

有更多知识的人可以告诉我如何解决这个问题吗?由于我无法再搜索这些对象,因此造成了很大的问题。

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 如何删除索引?
    • DELETE index
    • 酷,很高兴它有帮助!
    猜你喜欢
    • 2018-12-16
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多