首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >开始使用BoltDB

开始使用BoltDB
EN

Stack Overflow用户
提问于 2016-01-24 06:55:07
回答 2查看 2.9K关注 0票数 2

我正试图把我的头围绕着流血,我理解在教程,视频和文档中所发生的一切。然而,当我在BoltDB上使用它而不知道如何开始时,我感到非常困惑。

假设我有一个名为BoltDB的现有data.db数据库,其中填充了结构类型Person的值。

代码语言:javascript
复制
type Person struct {
   ID int          `json:"id"`             
   Name string     `json:"name"` 
   Age int         `json:"age"`
   Sex string      `json:"sex"`
}

如何对这些数据进行索引以便进行搜索?如何处理将来存储在数据库中的数据的索引?

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-24 20:53:15

Bleve使用BoltDB作为几个后端存储区之一,它与存储应用程序数据的位置是分开的。要在Bleve中索引数据,只需添加Index即可。

index.Index(person.ID, person)

index与您的应用程序数据是分开存在的(无论它是在Bolt、Postgres等中)。

要检索数据,您需要使用bleve.NewSearchRequest()构造一个搜索请求,然后调用Index.Search()。这将返回一个SearchResult,其中包括一个Hits字段,您可以在该字段中检索对象的ID。您可以使用它在应用程序数据存储中查找对象。

免责声明:我是BoltDB的作者。

票数 7
EN

Stack Overflow用户

发布于 2016-01-24 17:45:57

如何索引数据取决于如何查询数据。

如果您想通过任意字段进行查询,如{Age:15,Name:"Bob"},那么BoltDB并不适合您的问题。

BoltDB是一个简单的键值存储,具有快速访问顺序密钥和高效查找前缀的功能。它实际上并不是通用数据库的替代品。

您可能需要更像文档存储(即: MongoDB)或关系数据库管理系统(即: PostgreSQL)的东西。

如果您只想要使用简单文件并嵌入的东西,也可以将SQliteGo模块一起使用。

如果只想按单个字段(如ID或Name )进行搜索,请使用该字段作为键。

如果查找速度一点也不重要,我想您可以使用Bolt来遍历整个db,解析json并检查字段。但这可能是你能采取的最糟糕的方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34973055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档