A modern text indexing library for go

Sreekanth Sivasankaran e0de6a8c9c Merge pull request #1213 from sreekanth-cb/geohash_new 6 months ago
analysis 6ba04b0f81 asciifolding test apples from MB-33486 7 months ago
cmd 8bbe51a161 dict cmd additions 9 months ago
config c6b5eca7b2 Import analysis/char/asciifolding in config to register the filter 8 months ago
docs 2332455bd2 nicer formatting of license header 3 years ago
document bdd917bb12 MB-28847: Account for total documents' size within a batch 1 year ago
geo 2f920ab09a updating copyright header 6 months ago
http 00722aa299 disable http unit test which relied on debug functionality 1 year ago
index 5b9d7756e1 fix batch persisted callback for upsidedown (#1209) 6 months ago
mapping 950ca8b435 go fmt 8 months ago
numeric 7740f389de MB-33455: improve ComputeGeoRange() performance 7 months ago
registry 2a8237e8cc optimize FacetsBuilder with cached fields & avoid some allocs 3 years ago
search 409d4e4fc3 Include freq/norm if location information is asked for 7 months ago
size 06f7c58a35 Include missing initialization for size entry of integers 1 year ago
test 59adf0b315 fixes #1168 - filter duplicate locations in search results 7 months ago
vendor 326f90d860 switch to bbolt (#1134) 9 months ago
.gitignore 9ec2ddd757 initial refactor of query into separate package 3 years ago
.travis.yml ad32d2f762 Update .travis.yml to test on the latest 3 versions of golang 6 months ago
CONTRIBUTING.md 2807a2c8bd adding CONTRIBUTING.md to repo 3 years ago
LICENSE 6e7aa57b52 adding license file 5 years ago
README.md d14b290235 Fix coverage badge in README 1 year ago
config.go 94b0367e47 switch back to upsidedown as default index before merge to master 1 year ago
config_app.go 2332455bd2 nicer formatting of license header 3 years ago
config_disk.go 2332455bd2 nicer formatting of license header 3 years ago
doc.go 2332455bd2 nicer formatting of license header 3 years ago
error.go 2332455bd2 nicer formatting of license header 3 years ago
examples_test.go 2dc2130633 additional golint cleanups 3 years ago
index.go dca226594c Reset stats: lastDocSize, totalSize in batch's Reset() 6 months ago
index_alias.go 2332455bd2 nicer formatting of license header 3 years ago
index_alias_impl.go 16c228ad9b Propagate Score setting to child search request during MultiSearch(..) 9 months ago
index_alias_impl_test.go 323f83aed5 Fix spelling and typo mistakes 1 year ago
index_impl.go eb62de6a81 LoadAndHighLightFields API 8 months ago
index_meta.go 96657413a7 index API & scorch uses index.Regexp instead string'ified regexp 1 year ago
index_meta_test.go 2332455bd2 nicer formatting of license header 3 years ago
index_stats.go 2332455bd2 nicer formatting of license header 3 years ago
index_test.go a91b427b59 fix data race with batch reset (#1150) 8 months ago
mapping.go a16efa5e78 add experimental support for indexing/query geo points 2 years ago
query.go 4ddc50e86d typo in documentation 2 years ago
search.go a1c886716c API: renamed SearchRequest.NoScore (bool) to Score (string) 9 months ago
search_test.go 9dcbc5c71a Include freq/norm information when IncludeTermVectors:true 7 months ago


bleve bleve

Build Status Coverage Status GoDoc codebeat Go Report Card Sourcegraph License

modern text indexing in go - blevesearch.com

Try out bleve live by searching the bleve website.


  • Index any go data structure (including JSON)
  • Intelligent defaults backed up by powerful configuration
  • Supported field types:
    • Text, Numeric, Date
  • Supported query types:
    • Term, Phrase, Match, Match Phrase, Prefix
    • Conjunction, Disjunction, Boolean
    • Numeric Range, Date Range
    • Simple query syntax for human entry
  • tf-idf Scoring
  • Search result match highlighting
  • Supports Aggregating Facets:
    • Terms Facet
    • Numeric Range Facet
    • Date Range Facet


Discuss usage and development of bleve in the google group.


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 {
index.Index(message.Id, message)


index, _ := bleve.Open("example.bleve")
query := bleve.NewQueryStringQuery("bleve")
searchRequest := bleve.NewSearchRequest(query)
searchResult, _ := index.Search(searchRequest)


Apache License Version 2.0