Go 文本索引庫:Bleve
Bleve,發音為 BLEH-vee,是一個現代化的 Go 搜索索引庫。Bleve 是使用 Go 編寫的現代化文本索引庫,支持各種常用的搜索索引,包括過濾,排序和分類。
當使用 Java 和 JVM 的時候使用比較多的是 Lucene,Elasticsearch 和 Solr。但是有時候不想要那么多依賴,想要避免外部服務,簡單編譯部署就可以運行。所以 Couchbase 團隊就構建了一個 Go 庫,支持大部分 Lucene 常規使用的文本分析組件,可以使用 off-the-shelf key-value (KV) 存儲。
特性:
-
支持任何 go 數據架構索引,包括 JSON
-
通過強大的配置智能默認備份
-
支持字段類型
-
Text, Numeric, Date
-
支持查詢類型
-
Term, Phrase, Match, Match Phrase, Prefix
-
Conjunction, Disjunction, Boolean
-
Numeric Range, Date Range
-
人類條目的簡單查詢語法
-
tf-idf Scoring
-
默認搜索匹配結果高亮
-
支持聚合 Facets:
-
Terms Facet
-
Numeric Range Facet
-
Date Range Facet
索引
message := struct{
Id string
From string
Body string
}{
Id: "example",
From: "marty.schoch@gmail.com",
Body: "bleve indexing is easy",
}
mapping := bleve.NewIndexMapping()
index, err := bleve.New("example.bleve", mapping)
if err != nil {
panic(err)
}
index.Index(message.Id, message)查詢
index, _ := bleve.Open("example.bleve")
query := bleve.NewQueryStringQuery("bleve")
searchRequest := bleve.NewSearchRequest(query)
searchResult, _ := index.Search(searchRequest) 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!