📚 bleve - Awesome Go Library for Data Structures and Algorithms
Modern text indexing library for go.
Detailed Description of bleve
bleve
A modern indexing + search library in GO
Features
- 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
Indexing
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)
Querying
index, _ := bleve.Open("example.bleve")
query := bleve.NewQueryStringQuery("bleve")
searchRequest := bleve.NewSearchRequest(query)
searchResult, _ := index.Search(searchRequest)
Command Line Interface
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.
Text Analysis
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)
Text Analysis Wizard
Discussion/Issues
Discuss usage/development of bleve and/or report issues here:
License
Apache License Version 2.0