Overview
Manticore Search is an open-source database built for search. It handles full-text search, vector search, and hybrid search (combining both in a single query) and is positioned as an alternative to Elasticsearch. It is written in C++ and aims to keep response times low and resource use small, using around 40MB of RAM for an empty instance.
It is SQL-first: SQL is its native query language, and it speaks the MySQL protocol, so you can connect with a standard MySQL client. For programmatic use it also exposes an HTTP JSON API with Elasticsearch-compatible writes, plus official clients for languages like PHP, Python, JavaScript, TypeScript, Java, Go, and Rust.
As a search-focused database in the vector database space, it suits teams that want full-text and vector retrieval together without running a heavier search stack. It offers row-wise storage for small to large datasets and optional columnar storage (via the Manticore Columnar Library) for data too big to fit in RAM.
What it does
- Full-text, vector, and hybrid search, with hybrid combining full-text and vector retrieval in one query
- SQL-first with MySQL protocol support, so you can connect with your usual MySQL client
- HTTP JSON API with Elasticsearch-compatible writes for data and schema management
- Row-wise storage plus optional columnar storage for datasets too large to fit in RAM
- Multithreaded architecture with query parallelization to use all CPU cores
- Official clients for PHP, Python, JavaScript, TypeScript, Java, Elixir, Go, and Rust
Getting started
Run Manticore in Docker, connect over the MySQL protocol, then create a table and run a full-text search.
Start Manticore and open a MySQL shell
Run the official Docker image, wait until it accepts connections, then open an interactive MySQL session inside the container.
docker run --name manticore --rm -d manticoresearch/manticore && until docker logs manticore 2>&1 | grep -q "accepting connections"; do sleep 1; done && docker exec -it manticore mysql && docker stop manticoreCreate a table
Define a table with text and integer columns and basic full-text options.
create table movies(title text, year int) morphology='stem_en' html_strip='1' stopwords='en';Insert data
Add a few rows to search over.
insert into movies(title, year) values ('The Seven Samurai', 1954), ('Bonnie and Clyde', 1954), ('Reservoir Dogs', 1992);Run a full-text search
Use match() for full-text queries and highlight() to see the matched text.
select highlight(), year from movies where match('the dog');Commands and code are distilled from the project's own documentation — always check the official repo for the latest.
When to use it
- Add fast full-text search to an application using SQL and a MySQL client
- Combine keyword and vector search in one query for better relevance (hybrid search)
- Run log analytics or other large datasets as a lighter alternative to Elasticsearch
- Store data too big for RAM using columnar storage
How Manticore Search compares
Manticore Search alongside other open-source vector databases tools AI/TLDR tracks, ranked by GitHub stars.
| Tool | Stars | What it does |
|---|---|---|
| Supabase | ★ 105k | Managed Postgres backend whose Vector toolkit (pgvector) stores, indexes, and queries embeddings next to transactional data. |
| Redis Cloud | ★ 75k | Fully-managed Redis with built-in vector search, offering low-latency similarity and hybrid queries over any embeddings. |
| Milvus | ★ 44.9k | A distributed vector database for storing and searching billions of embeddings at scale, with multiple index types and Kubernetes-native deployment. |
| FAISS | ★ 40.4k | A library from Meta for efficient similarity search and clustering of dense vectors, with both exact and approximate indexes. |
| Qdrant | ★ 32.5k | A Rust-based vector search engine that stores embeddings with rich payload filtering for semantic search and recommendation systems. |
| Chroma | ★ 28.5k | A developer-focused vector database designed for quickly building retrieval and RAG features with a simple Python and JavaScript API. |
| pgvector | ★ 21.8k | A PostgreSQL extension that adds a vector data type and similarity search so you can store and query embeddings inside an existing Postgres database. |
| Manticore Search | ★ 11.8k | Open-source database for full-text, vector, and hybrid search |