A modern indexing + search library in GO
- Index any GO data structure or JSON
- Intelligent defaults backed up by powerful configuration (scorch)
- Supported field types:
text
,number
,datetime
,boolean
,geopoint
,geoshape
,IP
,vector
- Supported query types:
term
,phrase
,match
,match_phrase
,prefix
,regexp
,wildcard
,fuzzy
- term range, numeric range, date range, boolean field
- compound queries:
conjuncts
,disjuncts
, boolean (must
/should
/must_not
) - query string syntax
- geo spatial search
- approximate k-nearest neighbors via vector search
- tf-idf scoring
- Hybrid search: exact + semantic
- Query time boosting
- Search result match highlighting with document fragments
- Aggregations/faceting support:
- terms facet
- numeric range facet
- date range facet
message := struct{
Id string
From string
Body string
}{
Id: "example",
From: "[email protected]",
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)
To install the CLI for the latest release of bleve, run:
$ go install github.com/blevesearch/bleve/v2/cmd/bleve@latest
$ bleve --help
Bleve is a command-line tool to interact with a bleve index.
Usage:
bleve [command]
Available Commands:
bulk bulk loads from newline delimited JSON files
check checks the contents of the index
count counts the number documents in the index
create creates a new index
dictionary prints the term dictionary for the specified field in the index
dump dumps the contents of the index
fields lists the fields in this index
help Help about any command
index adds the files to the index
mapping prints the mapping used for this index
query queries the index
registry registry lists the bleve components compiled into this executable
scorch command-line tool to interact with a scorch index
Flags:
-h, --help help for bleve
Use "bleve [command] --help" for more information about a command.
Bleve includes general-purpose analyzers (customizable) as well as pre-built text analyzers for the following languages:
Arabic (ar), Bulgarian (bg), Catalan (ca), Chinese-Japanese-Korean (cjk), Kurdish (ckb), Danish (da), German (de), Greek (el), English (en), Spanish - Castilian (es), Basque (eu), Persian (fa), Finnish (fi), French (fr), Gaelic (ga), Spanish - Galician (gl), Hindi (hi), Croatian (hr), Hungarian (hu), Armenian (hy), Indonesian (id, in), Italian (it), Dutch (nl), Norwegian (no), Polish (pl), Portuguese (pt), Romanian (ro), Russian (ru), Swedish (sv), Turkish (tr)
Discuss usage/development of bleve and/or report issues here:
Apache License Version 2.0