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 606fd6344b INDEX FORMAT CHANGE: change back index row value
Previously term entries were encoded pairwise (field/term), so
you'd have data like:

F1/T1 F1/T2 F1/T3 F2/T4 F3/T5

As you can see, even though field 1 has 3 terms, we repeat the F1
part in the encoded data.  This is a bit wasteful.

In the new format we encode it as a list of terms for each field:

F1/T1,T2,T3 F2/T4 F3/T5

When fields have multiple terms, this saves space.  In unit
tests there is no additional waste even in the case that a field
has only a single value.

Here are the results of an indexing test case (beer-search):

$ benchcmp indexing-before.txt indexing-after.txt
benchmark               old ns/op       new ns/op       delta
BenchmarkIndexing-4     11275835988     10745514321     -4.70%

benchmark               old allocs     new allocs     delta
BenchmarkIndexing-4     25230685       22480494       -10.90%

benchmark               old bytes      new bytes      delta
BenchmarkIndexing-4     4802816224     4741641856     -1.27%

And here are the results of a MatchAll search building a facet
on the "abv" field:

$ benchcmp facet-before.txt facet-after.txt
benchmark             old ns/op     new ns/op     delta
BenchmarkFacets-4     439762100     228064575     -48.14%

benchmark             old allocs     new allocs     delta
BenchmarkFacets-4     9460208        3723286        -60.64%

benchmark             old bytes     new bytes     delta
BenchmarkFacets-4     260784261     151746483     -41.81%

Although we expect the index to be smaller in many cases, the
beer-search index is about the same in this case.  However,
this may be due to the underlying storage (boltdb) in this case.

Finally, the index version was bumped from 5 to 7, since smolder
also used version 6, which could lead to some confusion.
2017-01-24 15:39:38 -05:00
analysis fix the confusing variable name 2017-01-14 20:26:08 +09:00
cmd/bleve vendor mousetrap 2016-10-24 13:54:29 -04:00
config renamed detect_lang to detectlang 2017-01-09 16:51:48 +09:00
docs nicer formatting of license header 2016-10-02 10:13:14 -04:00
document nicer formatting of license header 2016-10-02 10:13:14 -04:00
http fix misspellings 2016-10-02 12:11:15 -04:00
index INDEX FORMAT CHANGE: change back index row value 2017-01-24 15:39:38 -05:00
mapping fix type identification when object indexed is pointer to struct 2016-12-08 08:07:38 -05:00
numeric nicer formatting of license header 2016-10-02 10:13:14 -04:00
registry optimize FacetsBuilder with cached fields & avoid some allocs 2016-10-25 15:34:48 -07:00
search improve performance of regular expression and wildcard queries 2017-01-18 16:22:16 -05:00
test API change: optional SearchRequest.IncludeLocations flag 2017-01-05 21:11:22 -08:00
vendor update moss gvt manifest for SeekTo() API 2016-09-23 07:18:14 -07:00
.gitignore initial refactor of query into separate package 2016-09-29 14:54:16 -04:00
.travis.yml remove firestorm index scheme 2016-06-26 07:51:41 -04:00
config_app.go nicer formatting of license header 2016-10-02 10:13:14 -04:00
config_disk.go nicer formatting of license header 2016-10-02 10:13:14 -04:00
config.go nicer formatting of license header 2016-10-02 10:13:14 -04:00
CONTRIBUTING.md adding CONTRIBUTING.md to repo 2016-06-26 09:48:43 -04:00
doc.go nicer formatting of license header 2016-10-02 10:13:14 -04:00
error.go nicer formatting of license header 2016-10-02 10:13:14 -04:00
examples_test.go additional golint cleanups 2016-10-02 12:00:01 -04:00
index_alias_impl_test.go simplified MultiSearch requires that indexes honor context deadlines 2016-11-03 16:44:20 -07:00
index_alias_impl.go API change: optional SearchRequest.IncludeLocations flag 2017-01-05 21:11:22 -08:00
index_alias.go nicer formatting of license header 2016-10-02 10:13:14 -04:00
index_impl.go API change: optional SearchRequest.IncludeLocations flag 2017-01-05 21:11:22 -08:00
index_meta_test.go nicer formatting of license header 2016-10-02 10:13:14 -04:00
index_meta.go nicer formatting of license header 2016-10-02 10:13:14 -04:00
index_stats.go nicer formatting of license header 2016-10-02 10:13:14 -04:00
index_test.go API change: optional SearchRequest.IncludeLocations flag 2017-01-05 21:11:22 -08:00
index.go Add comment about JSON serialization of kvconfig 2016-10-19 10:19:14 -04:00
LICENSE adding license file 2014-04-17 17:03:15 -04:00
mapping.go nicer formatting of license header 2016-10-02 10:13:14 -04:00
query.go Settle on default fuzziness of 1 (for now) 2016-10-04 15:00:50 +13:00
README.md update readme 2016-09-29 16:23:31 -04:00
search_test.go nicer formatting of license header 2016-10-02 10:13:14 -04:00
search.go API change: optional SearchRequest.IncludeLocations flag 2017-01-05 21:11:22 -08: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 the bleve website.

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