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 c9310b906d introduced new collector store impl based on slice
counter-intuitively the list impl was faster than the heap
the theory was the heap did more comparisons and swapping
so even though it benefited from no interface and some cache
locality, it was still slower

the idea was to just use a raw slice kept in order
this avoids the need for interface, but can take same comparison
approach as the list

it seems to work out:

 go test -run=xxx -bench=. -benchmem -cpuprofile=cpu.out
BenchmarkTop10of100000Scores-4     	    5000	    299959 ns/op	    2600 B/op	      36 allocs/op
BenchmarkTop100of100000Scores-4    	    2000	    601104 ns/op	   20720 B/op	     216 allocs/op
BenchmarkTop10of1000000Scores-4    	     500	   3450196 ns/op	    2616 B/op	      36 allocs/op
BenchmarkTop100of1000000Scores-4   	     500	   3874276 ns/op	   20856 B/op	     216 allocs/op
PASS
ok  	github.com/blevesearch/bleve/search/collectors	7.440s
2016-08-26 11:52:49 -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 change sort field impl to use indexed values not stored values 2016-08-17 09:20:44 -07:00
http remove byte_array_conveters 2016-07-01 10:21:41 -04:00
index adds support for more complex field sorts with object (not string) 2016-08-17 14:33:51 -07:00
numeric_util change sort field impl to use indexed values not stored values 2016-08-17 09:20:44 -07:00
registry a few more gofmt simplifications 2016-04-02 22:48:00 -04:00
search introduced new collector store impl based on slice 2016-08-26 11:52:49 -04:00
test add integration tests for sorting 2016-08-20 14:45:53 -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 add example usage of SortBy and SortByCustom 2016-08-18 13:03:48 -07:00
index_alias_impl_test.go improved implementation to address perf regressions 2016-08-25 15:47:07 -04:00
index_alias_impl.go cache values to avoid dynamic dispatch inside hot loop 2016-08-25 16:24:26 -04:00
index_alias.go Fix typos in comments and strings 2014-12-18 18:43:12 +01:00
index_impl.go refactored data structure out of collector 2016-08-26 10:29:50 -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 expose simple string slice based sorting to top-level bleve 2016-08-17 14:49:06 -07: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 adjust new sort functionality to also work with MultiSearch 2016-08-24 14:07:10 -04: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