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 cf67fe2cbc fix major synchronization issue in the field_cache
The field cache is expected to be the authority on which field
names are identified by which identifier.  This code was
optimized for the most common case in which fields already
exist.  However, if we deterimine the field is missing with
the read lock (shared), we incorrectly immediately proceed
to create a new row with the write lock (exclusive).  The
problem is that multiple goroutines might have come to
the same conclusion, and they all proceed to add rows.  The two
choices were to do the whole operation with the write lock, or
recheck the value again with the write lock.  We have chosen
to repeat the check inside the write-lock, as this optimizes
for what we believe to be the most common case, in which most
fields will already exist.
2015-12-15 16:39:38 -05:00
analysis Merge branch 'master' into firestorm 2015-11-30 15:02:46 -05:00
config Merge branch 'master' into firestorm 2015-11-30 15:02:46 -05:00
docs set GIT_BRANCH to TRAVIS_BRANCH 2015-11-23 11:10:55 -05:00
document Merge branch 'master' into firestorm 2015-10-28 11:26:01 -04:00
http give indexes names, make stats available via expvar by default 2015-12-06 14:01:03 -05:00
index fix major synchronization issue in the field_cache 2015-12-15 16:39:38 -05:00
numeric_util simplify prefix coding 2015-10-12 14:53:17 -07:00
registry exception: fail if pattern is empty, name tokenizer in error 2015-10-27 18:53:03 +01:00
search search result hits now have a field with the name of the index 2015-12-08 13:55:04 -05:00
test add some tests for index names in results 2015-12-08 14:38:46 -05:00
utils allow running prefix queries through bleve_query command 2015-12-06 14:01:53 -05:00
.gitignore Simplify JSON API for phrase query 2015-11-02 21:08:11 +03:00
.travis.yml remove exceptions from errcheck 2015-11-24 12:52:46 -05:00
config.go give indexes names, make stats available via expvar by default 2015-12-06 14:01:03 -05:00
doc.go apply doc fix patch from rakoo 2014-09-07 09:09:47 -04:00
error.go Merge branch 'codesimplification' of https://github.com/Shugyousha/bleve into Shugyousha-codesimplification 2015-09-29 13:02:56 -04:00
examples_test.go doc: document Token, TokenFrequencies and Field structs 2015-10-09 12:32:44 +02:00
index_alias_impl_test.go add some tests for index names in results 2015-12-08 14:38:46 -05:00
index_alias_impl.go give indexes names, make stats available via expvar by default 2015-12-06 14:01:03 -05:00
index_alias.go Fix typos in comments and strings 2014-12-18 18:43:12 +01:00
index_impl.go search result hits now have a field with the name of the index 2015-12-08 13:55:04 -05:00
index_meta_test.go fix issues identified by errcheck 2015-04-07 15:39:56 -04:00
index_meta.go major kvstore interface and impl overhaul 2015-09-23 11:25:47 -07:00
index_race_test.go fix issues identified by errcheck 2015-05-15 15:14:15 -04:00
index_stats.go give indexes names, make stats available via expvar by default 2015-12-06 14:01:03 -05:00
index_test.go go fmt index_text.go 2015-11-23 09:28:09 -08:00
index.go give indexes names, make stats available via expvar by default 2015-12-06 14:01:03 -05:00
LICENSE adding license file 2014-04-17 17:03:15 -04:00
mapping_document.go implement document static mappings 2015-09-29 11:32:36 +02:00
mapping_field.go Fixes datetime mapping from JSON, using DateTimeFieldMapping 2015-11-20 19:15:35 -07:00
mapping_index.go mapping_index: add IndexMapping.FieldAnalyzer() 2015-11-19 11:20:32 +01:00
mapping_test.go mapping_test: fix TestMappingWithTokenizerDeps now patterns are required 2015-10-29 20:07:00 +01:00
query_boolean.go Allow query string handling which contains only not must 2015-07-08 16:36:14 +05:30
query_conjunction.go major refactor of kvstore/index internals, see below 2014-09-12 17:21:35 -04:00
query_date_range.go Fix typos in comments and strings 2014-12-18 18:43:12 +01:00
query_disjunction.go major refactor of kvstore/index internals, see below 2014-09-12 17:21:35 -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 godoc around NewFuzzyQuery function 2015-03-02 09:29:06 -05:00
query_match_all.go major refactor of kvstore/index internals, see below 2014-09-12 17:21:35 -04:00
query_match_none.go major refactor of kvstore/index internals, see below 2014-09-12 17:21:35 -04:00
query_match_phrase.go mapping_field: document IncludeTermVectors 2015-11-19 15:38:16 +01:00
query_match.go clean up logging to use package level *log.Logger 2014-12-28 12:14:48 -08: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 added regexp and wildcard queries 2015-03-11 16:57:22 -04:00
query_string_parser_test.go fix query string query syntax when term starts with a number 2015-05-21 15:43:13 -04:00
query_string_parser.go when generating parser, run go fmt on the lexer 2015-01-02 10:02:20 -08:00
query_string.go major refactor of kvstore/index internals, see below 2014-09-12 17:21:35 -04:00
query_string.nex fix query string query syntax when term starts with a number 2015-05-21 15:43:13 -04:00
query_string.nn.go fix query string query syntax when term starts with a number 2015-05-21 15:43:13 -04:00
query_string.y fix query parser to recognize field prefix before fuzzy tilde 2015-01-19 16:20:32 -05:00
query_string.y.go fix query parser to recognize field prefix before fuzzy tilde 2015-01-19 16:20:32 -05:00
query_term.go major refactor of kvstore/index internals, see below 2014-09-12 17:21:35 -04:00
query_test.go query_docid: add DocIDQuery to filter by document identifiers 2015-11-04 18:41:16 +01:00
query_wildcard.go added regexp and wildcard queries 2015-03-11 16:57:22 -04:00
query.go Simplify JSON API for phrase query 2015-11-02 21:08:11 +03:00
README.md updated link to simple query syntax in README.md 2015-09-17 10:27:58 -07:00
reflect.go typo in lookupPropertyPathPart() func name 2015-11-23 09:27:22 -08:00
search_test.go SearchResult Took field now returns full time in Search() 2015-02-19 12:11:40 +05:30
search.go doc: document field values storage and retrieval 2015-10-04 11:25:58 +02:00

bleve bleve

Build Status Coverage Status GoDoc Join the chat at https://gitter.im/blevesearch/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