Bleve
activeby Couchbase and Bleve contributors · since 2014 · also known as bleve search
Pure-Go full-text, geo and vector indexing library from Couchbase.
Overview
Bleve is a full-text search and indexing library for Go, created and maintained largely by Couchbase, where it powers Couchbase Server's Search Service. It indexes Go structs or JSON with configurable analyzers, supports term, phrase, fuzzy, numeric range, date and geo queries, faceting and highlighting, and uses the segment-based 'scorch' index format. Vector search was added in v2.4 via FAISS bindings (built with a vectors build tag). It is the most complete native-Go option for embedding search into a Go service.
Strengths & trade-offs
Strengths
- +Pure Go for text search, easy to embed with go get
- +Rich queries, facets and highlighting
- +Geo points and shapes
- +Vector search via FAISS integration
- +Battle-tested inside Couchbase Search
Trade-offs
- −Vector support needs cgo and FAISS
- −Slower than Tantivy or Lucene on large corpora
- −Go-only
- −No built-in server or replication
Great for
- +Embedding search in Go services and CLIs
- +Desktop or self-hosted apps written in Go
- +Hybrid text plus vector search in Go
Think twice for
- −Large distributed search clusters
- −Non-Go stacks
- −Teams wanting a ready search server
Capabilities
Native or official first-party support · 6 of 25 tracked
Scale & consistency
- Comfortable data size
- Medium · ≤ 10 TB
- Horizontal scaling
- Manual
- Multi-region
- No
- Transactions
- Limited ACID
- Consistency
- Strong
- Schema
- Flexible
- Architecture
- Embedded
- Query languages
- Bleve query string syntax, Go API
Single index per process; Couchbase builds distributed search on top.
Deployment
Ecosystem
Alternatives to Bleve
Lucene-inspired full-text search library in Rust, the engine under Quickwit and ParadeDB.
bleve vs tantivy →The Java search library at the heart of Elasticsearch, OpenSearch and Solr, now with HNSW vectors.
bleve vs apache-lucene →Lightweight single-binary full-text search engine in Go with Elasticsearch-compatible ingest.
bleve vs zincsearch →Tiny schema-less Rust search backend that returns object IDs, running in a few MB of RAM.
bleve vs sonic →Memory-first distributed JSON database with SQL++, search, vector indexes and mobile sync.
bleve vs couchbase →Hosted search-as-a-service with fast typo-tolerant search, merchandising and AI ranking.
bleve vs algolia →Bleve FAQ
What is Bleve?
Bleve is a search engine database by Couchbase and Bleve contributors, first released in 2014. Bleve is a full-text search and indexing library for Go, created and maintained largely by Couchbase, where it powers Couchbase Server's Search Service. It indexes Go structs or JSON with configurable analyzers, supports term, phrase, fuzzy, numeric range, date and geo queries, faceting and highlighting, and uses the segment-based 'scorch' index format. Vector search was added in v2.4 via FAISS bindings (built with a vectors build tag). It is the most complete native-Go option for embedding search into a Go service.
Is Bleve open source?
Yes. Bleve is open source. License: Apache License 2.0.
Does Bleve support ACID transactions?
Partly. Bleve offers limited ACID guarantees (for example, single-record or single-partition transactions), with strong consistency.
Does Bleve scale horizontally?
Bleve has no built-in sharding; scaling out means partitioning data in your application. It is comfortable at medium scale (≤ 10 TB).
How can I run Bleve?
You can self-host it and embed it in your application.
What is Bleve best for?
Bleve is a strong fit for embedding search in Go services and CLIs; desktop or self-hosted apps written in Go; and hybrid text plus vector search in Go. Think twice for large distributed search clusters.
What are the best alternatives to Bleve?
Common alternatives to Bleve include Tantivy, Apache Lucene, ZincSearch, Sonic and Couchbase Server. The right choice depends on your workload, scale and hosting; WhichDB's smart match ranks them against your requirements.
How popular is Bleve?
Bleve ranks #272 of 844 databases on the WhichDB Score (12.2/100), and #18 among search engine databases. The score combines public adoption signals such as package downloads, GitHub activity, job posts and developer discussion.