A modern text indexing library for go. (this is a mirror of the github repository)
http://www.blevesearch.com/
5aa9e95468
index id's are now opaque (until finally returned to top-level user) - the TermFieldDoc's returned by TermFieldReader no longer contain doc id - instead they return an opaque IndexInternalID - items returned are still in the "natural index order" - but that is no longer guaranteed to be "doc id order" - correct behavior requires that they all follow the same order - but not any particular order - new API FinalizeDocID which converts index internal ID's to public string ID - APIs used internally which previously took doc id now take IndexInternalID - that is DocumentFieldTerms() and DocumentFieldTermsForFields() - however, APIs that are used externally do not reflect this change - that is Document() - DocumentIDReader follows the same changes, but this is less obvious - behavior clarified, used to iterate doc ids, BUT NOT in doc id order - method STILL available to iterate doc ids in range - but again, you won't get them in any meaningful order - new method to iterate actual doc ids from list of possible ids - this was introduced to make the DocIDSearcher continue working searchers now work with the new opaque index internal doc ids - they return new DocumentMatchInternal (which does not have string ID) scorerers also work with these opaque index internal doc ids - they return DocumentMatchInternal (which does not have string ID) collectors now also perform a final step of converting the final result - they STILL return traditional DocumentMatch (with string ID) - but they now also require an IndexReader (so that they can do the conversion) |
||
---|---|---|
analysis | ||
config | ||
docs | ||
document | ||
http | ||
index | ||
numeric_util | ||
registry | ||
search | ||
test | ||
utils | ||
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_parser_test.go | ||
query_string_parser.go | ||
query_string.go | ||
query_string.nex | ||
query_string.nn.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