我正在努力了解 Bleve,我了解教程、视频和文档中发生的一切。然而,当我在 BoltDB 上使用它并且不知道如何开始时,我感到非常困惑。假设我有一个现有的 BoltDB 数据库,其中data.db填充了结构类型 Person 的值type Person struct { ID int `json:"id"` Name string `json:"name"` Age int `json:"age"` Sex string `json:"sex"`}如何索引这些数据以便我可以进行搜索?如何处理将来存储在数据库中的数据的索引?任何帮助将不胜感激。
2 回答
慕姐8265434
TA贡献1813条经验 获得超2个赞
Bleve 使用 BoltDB 作为多个后端存储之一,并且与您存储应用程序数据的位置分开。要在 Bleve 中索引您的数据,只需添加您的Index
:
index.Index(person.ID, person)
它index
与您的应用程序数据分开存在(无论是在 Bolt、Postgres 等中)。
要检索数据,您需要使用 构建搜索请求bleve.NewSearchRequest()
,然后调用Index.Search()
。这将返回一个SearchResult
包含一个Hits
字段,您可以在其中检索ID
对象的 。您可以使用它在应用程序数据存储中查找对象。
慕码人8056858
TA贡献1803条经验 获得超6个赞
您如何索引数据取决于您希望如何查询它。
如果您想通过任意字段进行查询,例如 {Age:15, Name:"Bob"} 那么 BoltDB 不适合您的问题。
BoltDB 只是一个键值存储,可以快速访问顺序键和高效的前缀查找。它并不是真正替代通用数据库。
您可能想要更像文档存储(即:MongoDB)或 RDBMS(即:PostgreSQL)的东西。
如果你只是想要一些使用简单文件并嵌入的东西,你也可以使用SQlite和Go 模块
如果您只想按单个字段(例如 ID 或名称)进行搜索,则将其用作键。
如果查找速度根本不重要,我想您可以使用 Bolt 来遍历整个数据库,解析 json 并检查字段。但这可能是您可以采取的最糟糕的方法。
- 2 回答
- 0 关注
- 272 浏览
添加回答
举报
0/150
提交
取消