【问题标题】:Unable to save uuid in elasticsearch无法在弹性搜索中保存 uuid
【发布时间】:2020-06-26 21:13:47
【问题描述】:

我需要保存一些数据,其中包含一个名为 ID 的字段,这是一个 uuid 即时通讯使用 golang 和 olivere 弹性搜索包这是我的代码

type Space struct {
    ID      string   `json:"id"`
    Name    string   `json:"name"`
    Type    string   `json:"type"`
}

做了一些转换之后

    js := string(data)
    // upto this place there is no error or warnings
    ind, err := esclient.Index().
        Index(Type).
        BodyJson(js).
        Do(ctx)

这是它抛出的错误

无法解析具有 id 的文档中类型为 [long] 的字段 [id] 'gPmI8HIBCIO6Ejb-Y51D'。字段值预览: 'a5c723c5-1f6e-457f-9556-47b7ebcfd183'

【问题讨论】:

    标签: go elasticsearch


    【解决方案1】:

    错误消息非常清楚,您正在尝试存储a5c723c5-1f6e-457f-9556-47b7ebcfd183,它是一个字符串,并且只要id 字段在您的elasticsearch 映射中映射为long

    它甚至还告诉您,您在以 gPmI8HIBCIO6Ejb-Y51D 为值的 _id 的文档中遇到错误,因此您可以找到该文档并进行更正。

    请发送以下字段的正确值,在您的情况下为有效的long,以解决问题。

    ID      string   `json:"id"`
    

    如果您想获取更多代码级别的详细信息,请参阅 Elasticsearch 中的 this 代码,该代码解析值并引发异常。

    【讨论】:

    • 谢谢我做了你提到的改变,现在它工作了
    • @TRomesh 太好了,刚醒来,很高兴听到我能帮上忙 :)
    猜你喜欢
    • 2016-02-27
    • 2017-12-15
    • 2022-08-12
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多