A modern text indexing library for go. (this is a mirror of the github repository)
http://www.blevesearch.com/
fb0f4bbecd
Previously bleve allowed you to create a memory-only index by simply passing "" as the path argument to the New() method. This was not clear when reading the code, and led to some problematic error cases as well. Now, to create a memory-only index one should use the NewMemOnly() method. Passing "" as the path argument to the New() method will now return os.ErrInvalid. Advanced users calling NewUsing() can create disk-based or memory-only indexes, but the change here is that pass "" as the path argument no longer defaults you into getting a memory-only index. Instead, the KV store is selected manually, just as it is for the disk-based solutions. Here is an example use of the NewUsing() method to create a memory-only index: NewUsing("", indexMapping, Config.DefaultIndexType, Config.DefaultMemKVStore, nil) Config.DefaultMemKVStore is just a new default value added to the configuration, it currently points to gtreap.Name (which could have been used directly instead for more control) closes #427 |
||
---|---|---|
analysis | ||
cmd/bleve | ||
config | ||
docs | ||
document | ||
http | ||
index | ||
numeric_util | ||
registry | ||
search | ||
test | ||
vendor | ||
.gitignore | ||
.travis.yml | ||
config_app.go | ||
config_disk.go | ||
config.go | ||
CONTRIBUTING.md | ||
doc.go | ||
error.go | ||
examples_test.go | ||
index_alias_impl_test.go | ||
index_alias_impl.go | ||
index_alias.go | ||
index_impl.go | ||
index_meta_test.go | ||
index_meta.go | ||
index_stats.go | ||
index_test.go | ||
index.go | ||
LICENSE | ||
mapping_document.go | ||
mapping_field.go | ||
mapping_index.go | ||
mapping_test.go | ||
query_bool_field.go | ||
query_boolean.go | ||
query_conjunction.go | ||
query_date_range.go | ||
query_disjunction.go | ||
query_docid.go | ||
query_fuzzy.go | ||
query_match_all.go | ||
query_match_none.go | ||
query_match_phrase.go | ||
query_match.go | ||
query_numeric_range.go | ||
query_phrase.go | ||
query_prefix.go | ||
query_regexp.go | ||
query_string_lex.go | ||
query_string_parser_test.go | ||
query_string_parser.go | ||
query_string.go | ||
query_string.y | ||
query_string.y.go | ||
query_term.go | ||
query_test.go | ||
query_wildcard.go | ||
query.go | ||
README.md | ||
reflect.go | ||
search_test.go | ||
search.go |
bleve
modern text indexing in go - blevesearch.com
Try out bleve live by searching our wiki.
Features
- 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
Discussion
Discuss usage and development of bleve in the google group.
Indexing
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)
Querying
index, _ := bleve.Open("example.bleve")
query := bleve.NewQueryStringQuery("bleve")
searchRequest := bleve.NewSearchRequest(query)
searchResult, _ := index.Search(searchRequest)
License
Apache License Version 2.0