簡體   English   中英

使用BoltDB開始使用Bleve

[英]Getting started with Bleve using BoltDB

我試圖將我的頭腦包裹在Bleve周圍,我理解教程,視頻和文檔中正在發生的一切。 但是當我在BoltDB上使用它並且不知道如何啟動時,我感到非常困惑。

假設我有一個名為data.db的現有BoltDB數據庫, data.db填充了struct type Person的值

type Person struct {
   ID int          `json:"id"`             
   Name string     `json:"name"` 
   Age int         `json:"age"`
   Sex string      `json:"sex"`
}

如何索引此數據以便我可以進行搜索? 如何處理將來存儲在數據庫中的數據的索引?

任何幫助將受到高度贊賞。

Bleve使用BoltDB作為多個后端存儲之一,並與存儲應用程序數據的位置分開。 要在Bleve中索引數據,只需添加Index

index.Index(person.ID, person)

index與您的應用程序數據分開存在(無論是在Bolt,Postgres等)。

要檢索數據,您需要使用bleve.NewSearchRequest()構建搜索請求,然后調用Index.Search() 這將返回一個SearchResult ,其中包含一個Hits字段,您可以在其中檢索對象的ID 您可以使用它來查找應用程序數據存儲中的對象。

免責聲明:我是BoltDB的作者。

索引數據的方式取決於您希望如何查詢數據。

如果你想查詢任何字段,比如{Age:15,Name:“Bob”},那么BoltDB並不適合你的問題。

BoltDB只是一個鍵值存儲,可以快速訪問順序鍵和有效的前綴搜索。 它並不是一般用途數據庫的替代品。

您可能想要更像文檔存儲(即:MongoDB)或RDBMS(即:PostgreSQL)。

如果您只是想要使用簡單文件並嵌入的東西,您也可以將SQliteGo模塊一起使用

如果您只想搜索ID或名稱等單個字段,請將其用作密鑰。

如果查找速度根本不重要,我猜你可以使用Bolt迭代整個數據庫,解析json並檢查字段。 但這可能是你可以采取的最糟糕的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM