gpt4 book ai didi

mysql - 从 sphinx db 到有点复杂的 golang 结构的最佳实践

转载 作者:数据小太阳 更新时间:2023-10-29 03:13:47 29 4
gpt4 key购买 nike

我正在尝试通过 MySQL 将 sphinx 查询转换为 golang 结构,但遇到了困难。看起来这应该是一种常见的问题,但到目前为止,我一直坚持将其转换为 map 或自己解析输出。具体来说,我在 sphinx 中有一个模式,看起来像 {Source: {ID:string, subId:string, Campaigns:[]{CampaignID:string, Status:string}}}

我试过使用简单的 rows.scan,但这并不能帮助我解析重复字段,我只是将其作为未解析的字符串获取。在 sphinx 中, key 不在引号中,因此 JSON.unmarshal 似乎根本没有帮助。并使用 sqlx,我尝试构建以下结构

type CampaignStatus struct {
CampaignId string
Status string
}
type Source struct {
Id string
SubId string
StatusByCampaign []CampaignStatus
}
type Status struct {
Source
}

并将 Status 结构传递给 Row.ScanStruct(),然后我返回“缺少目标名称源”错误,或者如果我在 Status 中命名源成员,我得到“sql:列索引 0 上的扫描错误:不支持的扫描,将 driver.Value 类型 []uint8 存储到类型 *v1.Source 中”。完全披露,sphinx 模式还有一些其他列作为 StatusByCampaign 的对等列,它们紧随其后,在我的用例中我不关心它们。

这似乎是以前必须遇到的事情,但我似乎无法在编写自己的解析器之外找到解决方案,我不愿意这样做。

最佳答案

我发现我正在使用的遗留系统正在使用一个名为 ServiceStack 的 ASP.Net 库来序列化/反序列化我的 sphinx 数据库,并且它正在使用它自己的自定义 JSV 格式,ServiceStack 的作者说这是一种优化JSON 和 CSV 的混合,但据我所知还没有在其他任何地方采用。

所以看起来我要么用 Go 重写那个库,要么更可能更改索引算法以使用 JSON。

关于mysql - 从 sphinx db 到有点复杂的 golang 结构的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43284894/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com