0
0
A modern text indexing library for go. (this is a mirror of the github repository) http://www.blevesearch.com/
Go to file
Marty Schoch 5aa9e95468 major refactor of index/search API
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)
2016-07-31 13:46:18 -04:00
analysis remove byte_array_conveters 2016-07-01 10:21:41 -04:00
config remove byte_array_conveters 2016-07-01 10:21:41 -04:00
docs update travis to build with deps specified in manifest 2016-04-08 17:06:25 -04:00
document add support for numPlainTextBytesIndexed metric 2016-03-05 14:05:08 -05:00
http remove byte_array_conveters 2016-07-01 10:21:41 -04:00
index major refactor of index/search API 2016-07-31 13:46:18 -04:00
numeric_util simplify prefix coding 2015-10-12 14:53:17 -07:00
registry a few more gofmt simplifications 2016-04-02 22:48:00 -04:00
search major refactor of index/search API 2016-07-31 13:46:18 -04:00
test remove byte_array_conveters 2016-07-01 10:21:41 -04:00
utils fix format issue identified by go vet 2016-06-10 13:13:15 -04:00
vendor enable mossStore as configurable lower-level store 2016-05-26 13:33:22 -07:00
.gitignore add initial manifest 2016-04-08 15:03:05 -04:00
.travis.yml remove firestorm index scheme 2016-06-26 07:51:41 -04:00
config_app.go attempt to support google app engine 2016-07-29 21:29:05 -04:00
config_disk.go attempt to support google app engine 2016-07-29 21:29:05 -04:00
config.go attempt to support google app engine 2016-07-29 21:29:05 -04:00
CONTRIBUTING.md adding CONTRIBUTING.md to repo 2016-06-26 09:48:43 -04:00
doc.go apply doc fix patch from rakoo 2014-09-07 09:09:47 -04:00
error.go remove temporary error and replace with permanent check 2016-02-03 10:23:49 -05:00
examples_test.go added match query operator 2016-07-06 13:15:56 +02:00
index_alias_impl_test.go fix ineffectual assignments 2016-04-02 22:42:56 -04:00
index_alias_impl.go more defensive merging of errors in search result status 2016-03-10 16:04:05 -05:00
index_alias.go Fix typos in comments and strings 2014-12-18 18:43:12 +01:00
index_impl.go major refactor of index/search API 2016-07-31 13:46:18 -04:00
index_meta_test.go fix issues identified by errcheck 2015-04-07 15:39:56 -04:00
index_meta.go Minor fix to ensure full index path exists 2016-03-13 21:44:21 -06:00
index_stats.go moved fields requiring 64-bit alignment to start of struct 2016-03-20 10:38:28 -04:00
index_test.go remove byte_array_conveters 2016-07-01 10:21:41 -04:00
index.go add support for gathering stats via map for easier consumption 2016-03-07 18:37:46 -05:00
LICENSE adding license file 2014-04-17 17:03:15 -04:00
mapping_document.go fix indexing of primitives not inside map/struct 2016-06-21 21:15:36 -04:00
mapping_field.go add support for toggling Store/Index Dynamic in IndexMapping 2016-03-08 07:58:29 -05:00
mapping_index.go remove byte_array_conveters 2016-07-01 10:21:41 -04:00
mapping_test.go fix indexing of primitives not inside map/struct 2016-06-21 21:15:36 -04:00
query_bool_field.go Implemented boolean field support 2016-01-11 17:18:03 -08:00
query_boolean.go boolean query defaults to minShould of 0 2016-01-12 16:30:10 -05:00
query_conjunction.go simplify date parsing in queries, add date to query string 2016-04-22 17:12:10 -04:00
query_date_range.go update godocs for date range querying 2016-06-26 10:25:09 -04:00
query_disjunction.go simplify date parsing in queries, add date to query string 2016-04-22 17:12:10 -04:00
query_docid.go query_docid: add DocIDQuery to filter by document identifiers 2015-11-04 18:41:16 +01:00
query_fuzzy.go Fix some typos 2016-01-15 05:46:27 +07:00
query_match_all.go fix marshaling of MatchAll queries 2016-04-07 18:20:35 -04:00
query_match_none.go fix marshaling of MatchNone queries 2016-04-16 20:51:27 -04:00
query_match_phrase.go mapping_field: document IncludeTermVectors 2015-11-19 15:38:16 +01:00
query_match.go added match query operator 2016-07-06 13:15:56 +02:00
query_numeric_range.go Update NumericRangeQuery comments 2015-11-12 22:16:10 +01:00
query_phrase.go mapping_field: document IncludeTermVectors 2015-11-19 15:38:16 +01:00
query_prefix.go major refactor of kvstore/index internals, see below 2014-09-12 17:21:35 -04:00
query_regexp.go more correct fix, handles case where validate is called 2016-01-21 17:26:24 -05:00
query_string_parser_test.go simplify date parsing in queries, add date to query string 2016-04-22 17:12:10 -04:00
query_string_parser.go simplify date parsing in queries, add date to query string 2016-04-22 17:12:10 -04:00
query_string.go simplify date parsing in queries, add date to query string 2016-04-22 17:12:10 -04:00
query_string.nex add support for wildcard and regexp queries to query string 2016-04-08 15:56:02 -04:00
query_string.nn.go add support for wildcard and regexp queries to query string 2016-04-08 15:56:02 -04:00
query_string.y simplify date parsing in queries, add date to query string 2016-04-22 17:12:10 -04:00
query_string.y.go simplify date parsing in queries, add date to query string 2016-04-22 17:12:10 -04:00
query_term.go major refactor of kvstore/index internals, see below 2014-09-12 17:21:35 -04:00
query_test.go added match query operator 2016-07-06 13:15:56 +02:00
query_wildcard.go added regexp and wildcard queries 2015-03-11 16:57:22 -04:00
query.go simplify date parsing in queries, add date to query string 2016-04-22 17:12:10 -04:00
README.md adding goreportcard 2016-04-02 21:01:23 -04:00
reflect.go typo in lookupPropertyPathPart() func name 2015-11-23 09:27:22 -08:00
search_test.go parse search results by converting strings back to errors 2016-04-26 17:56:37 -04:00
search.go Do field cache only once per search 2016-07-17 16:29:17 -07:00

bleve bleve

Build Status Coverage Status GoDoc Join the chat at https://gitter.im/blevesearch/bleve codebeat Go Report Card

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