Bleve is a text and vector indexing library for Go that enables full-text search, numeric filtering, geospatial queries, and vector similarity search within applications.
The library addresses the need to add sophisticated search capabilities to Go programs without requiring external dependencies or separate search infrastructure. Bleve provides in-process indexing and querying, allowing developers to build search functionality directly into their applications. It supports multiple query types including term search, phrase queries, boolean combinations, range queries for numeric data, and geospatial bounding box and distance queries. The library handles both traditional text analysis with tokenization and stemming, and modern vector embeddings for semantic search.
Bleve suits projects that need embedded search without the operational overhead of running a dedicated search service. It works well for applications where search data fits in a single process or where distributed search is not required. The in-process nature makes it particularly valuable for tools, CLIs, and smaller services where adding a separate search system would be impractical. Developers building applications in Go who want to avoid external service dependencies will find the library's self-contained approach appealing.
The project maintains active development with regular updates to support evolving search patterns. The codebase shows consistent refinement of indexing strategies and query handling. The maintainers respond to issues and incorporate community feedback into the library's evolution. Development activity demonstrates ongoing attention to performance optimization and feature completeness across the different query types the library supports.