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 24a2b57e29 refactor search package to reuse DocumentMatch and ID []byte's
the motivation for this commit is long and detailed and has been
documented externally here:

https://gist.github.com/mschoch/5cc5c9cf4669a5fe8512cb7770d3c1a2

the core of the changes are:

1.  recognize that collector/searcher need only a fixed number
of DocumentMatch instances, and this number can be determined
from the structure of the query, not the size of the data

2.  knowing this, instances can be allocated in bulk, up front
and they can be reused without locking (since all search
operations take place in a single goroutine

3.  combined with previous commits which enabled reuse of
the IndexInternalID []byte, this allows for no allocation/copy
of these bytes as well (by using DocumentMatch Reset() method
when returning entries to the pool
2016-08-08 22:21:47 -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 document Reset behavior as its non-obvious 2016-08-03 17:16:15 -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 refactor search package to reuse DocumentMatch and ID []byte's 2016-08-08 22:21:47 -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