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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!