Skip to content

Bleve

Open-source Go library for indexing and searching full-text data with BM25 ranking.

Self-hostedNot yet verified
Report issueDemo online
Apache-2.0★ 11179

Open the official app on blevesearch.com

This tool is hosted by its maintainers. Click below to open blevesearch.com in a new tab — it's their official demo.

Browse developer tools →

What's next with Bleve?

Choose how you want to get started.

Use it free

Open the official tool or demo — no account needed.

Free

Self-host it

Run the open-source version on your own infrastructure.

Open

What is Bleve?

Bleve is an open-source full-text search library written in Go, designed for modern indexing and querying of text, numeric, geo-spatial, and vector data. It provides a simple API for developers to integrate search capabilities into applications, enabling efficient retrieval of information from unstructured datasets. The tool is particularly useful for applications requiring real-time search, such as content management systems, e-commerce platforms, and data analysis tools. Bleve addresses the challenge of handling large volumes of text data by offering features like language-specific analyzers, faceting for aggregated search results, and customizable indexing mappings. Its lightweight architecture and minimal setup make it accessible to developers seeking a flexible alternative to heavier search engines. Bleve’s core functionality revolves around creating indexes that map data fields to searchable terms, supporting advanced text analysis for 27 languages including English, Spanish, French, and Chinese. Developers can override default mappings to tailor behavior for specific data models, such as adjusting tokenization rules or numeric range queries. The tool’s simplicity is highlighted by its ability to build an index with three lines of code and execute searches with another three, making it ideal for rapid prototyping. Bleve’s extensibility allows integration with custom analyzers and plugins, while its Apache-2.0 license encourages community contributions and enterprise adoption. It competes with alternatives like Elasticsearch and Solr but offers a more streamlined approach for Go-based projects with less overhead.

How it works

How Bleve works — see the article below for details on this search tools tool.

How to use it

  1. 1Use the Bleve tool to complete your task.
  2. 2Use the Bleve tool to complete your task.
  3. 3Use the Bleve tool to complete your task.
  4. 4Use the Bleve tool to complete your task.

What it can do

  • full text search library

Use cases

Assumptions and limitations

Assumptions

  • source: https://github.com/blevesearch/bleve
  • license: Apache-2.0 — free to use
  • privacy: Self-hosted — you control your data

Understanding the result

Open-source Go library for indexing and searching full-text data with BM25 ranking.

Tool details

  • Clearly flagged when a network request is needed.
  • No account, no sign-up, and no tracking of your content.
  • Powered by (Apache-2.0).
Built with
(blevesearch/bleve)
License
Apache-2.0
Runs locally
No — requires a network request
Verification
Not yet verified
Input
Query
Output
Text
Open-source source & license

Built with blevesearch/bleve. OpenToolVault provides the discovery and browser interface while crediting the original project maintainers.

Built with
License
Apache-2.0
View source on GitHub

Open-source project

OpenToolVault is an independent directory. We are not affiliated with or endorsed by this project.

References

Frequently asked

What is Bleve and what problem does it solve?

Bleve is a Go-based full-text search library that solves the problem of efficiently indexing and querying unstructured text data. It enables developers to integrate search capabilities into applications with minimal setup, handling tasks like keyword extraction, language-specific analysis, and faceted search. Bleve is particularly useful for applications requiring real-time search over large datasets, such as content management systems or data analysis tools. Its lightweight design and extensibility make it a practical choice for projects needing a balance between simplicity and performance.

How does Bleve’s indexing and search process work?

Bleve uses an inverted index structure to map terms to document locations, allowing fast retrieval. When indexing data, developers define a mapping that specifies how fields are processed (e.g., text analysis, numeric ranges). The library then tokenizes and normalizes text using analyzers tailored to specific languages, such as English or Chinese. During search, queries are parsed into structured requests that leverage the index’s inverted structure to return relevant results. Features like faceting enable aggregation of search results, while support for numeric and geo-spatial queries extends its versatility for diverse use cases.

How do I index and search data with Bleve?

To index data, first create an index mapping that defines field types and analyzers. For example: `mapping := bleve.NewIndexMapping()` then specify field configurations. Next, initialize the index with `bleve.New("index.bleve", mapping)`. To add data, use `index.Index("id123", yourData)`. For searches, construct a query like `bleve.NewMatchQuery("keyword")`, wrap it in a `bleve.NewSearchRequest()`, and execute it with `index.Search()`. This process enables rapid indexing and querying, ideal for applications needing dynamic search capabilities.

How does Bleve compare to alternatives like Elasticsearch or Solr?

Bleve differs from Elasticsearch and Solr by being lightweight and designed specifically for Go projects, with a simpler API for basic search tasks. Unlike Elasticsearch, which is a distributed system for large-scale data, Bleve focuses on single-node performance and ease of integration. Solr, while also a full-text search engine, requires more complex setup and configuration. Bleve’s strength lies in its minimal overhead and language-specific analyzers, making it suitable for smaller applications or microservices, whereas Elasticsearch and Solr are better for enterprise-scale, distributed search needs.

What common issues occur when using Bleve and how are they resolved?

A common issue is the "index not found" error, which occurs if the index file path is incorrect or permissions are restricted. Verify the file path and ensure the directory exists. Another problem is incorrect mapping configurations, such as mismatched field types, which can cause indexing failures. Review the mapping definition to ensure fields align with data types. For search errors, check query syntax and ensure analyzers are correctly applied to the indexed fields. Debugging with Bleve’s logging or verbose output can help identify mismatches between queries and the index structure.

Spotted something wrong with Bleve, or want to maintain it? See how to help.