Package Structure

bleve is organized into a large number of packages.


The top-level bleve package is designed to provide an easy to use wrapper around all of the lower-level packages.


The analysis package contains all of the code related to analyzed text. Generally this package is independent of everything else. Should not depend on the index or search packages.


The analyzers package contain pre-built analyzers to for general purpose usage.


The byte array converters package contains utilities for interpreting byte arrays in common ways.


The char filters package contains implementations of the CharFilter interface.

DateTime Parsers

The date time parsers package contains implementation of the DateTimeParser interface.


The language package contains sub-packages for language specific analysis.

Token Filters

The token filters package contains implementation of the TokenFilter interface.

Token Maps

The token maps package supports maintaining word or token lists.


The tokenizers package contains implementations of the Tokenizer interface.


The document package contains the code related to bleve documents and fields. Documents contain fields. This is the unit of indexing within bleve.


The index package contains all of the code related to putting bits on disk in such a way to facilitate searching later.


The store package defines an general KV store interface. This interface allows index implementations to plug in alternative KV stores easily.


The upside_down package is the inverted index implementation. It can use any Store implementation. This has all of the details around how individual rows are encoded.


An optional set of HTTP handler which expose bleve functionality over HTTP/JSON.


The registry package provides a convenient mechanism for applications to refer to search components through string names. This also facilitates serializing index mappings and persisting them along with the index.


The search package contains all of the code to implement search functionality. Depends on the interfaces exposed by the Index package, but should not depend on any of its implementation details.


The collectors package is responsible for collecting the desirable results out of all the results. Typically the top N by some criteria.


The facets package is responsible for building facet information from result sets.


The highlight package is responsible for producing highlighted matching text in search results.


The scorers package is responsible for scoring search result hits. These results may be final or intermediate results.


The searchers package contain the actual searcher implementations.


This package contains all of the command-line utilities.