Bleve

active

by Couchbase and Bleve contributors · since 2014 · also known as bleve search

Pure-Go full-text, geo and vector indexing library from Couchbase.

search enginevectorspatialembedded libraryopen source (permissive)mature

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

✓Full-text search
✓Vector search
✓Geospatial
✓JSON
✓Durable persistence
✓Compression
–Transactions
–Joins
–Secondary indexes
–Change data capture
–Triggers
–Stored procedures
–Materialized views
–TTL / expiry
–Pub/Sub
–Columnar storage
–In-memory
–Encryption at rest
–Role-based access
–Time travel
–Branching
–Online schema changes
–Streaming ingest
–Offline sync
–Runs in WebAssembly

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

Self-hosted Vendor-managed cloud Serverless Embedded Edge Kubernetes operator

Ecosystem

apis & protocolsGo
client languagesGo
used byCouchbase

Alternatives to Bleve

Compare all→
TantivySearch Engine22.6

Lucene-inspired full-text search library in Rust, the engine under Quickwit and ParadeDB.

bleve vs tantivy →
Apache LuceneSearch Engine38.6

The Java search library at the heart of Elasticsearch, OpenSearch and Solr, now with HNSW vectors.

bleve vs apache-lucene →
ZincSearchSearch Engine5.1

Lightweight single-binary full-text search engine in Go with Elasticsearch-compatible ingest.

bleve vs zincsearch →
SonicSearch Engine8.3

Tiny schema-less Rust search backend that returns object IDs, running in a few MB of RAM.

bleve vs sonic →
Couchbase ServerDocument27.5

Memory-first distributed JSON database with SQL++, search, vector indexes and mobile sync.

bleve vs couchbase →
AlgoliaSearch Engine54.3

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.