AI/TLDR

Manticore Search

Open-source database for full-text, vector, and hybrid search

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.

bashbash
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 manticore

Create a table

Define a table with text and integer columns and basic full-text options.

sqlsql
create table movies(title text, year int) morphology='stem_en' html_strip='1' stopwords='en';

Insert data

Add a few rows to search over.

sqlsql
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.

sqlsql
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.

ToolStarsWhat it does
Supabase★ 105kManaged Postgres backend whose Vector toolkit (pgvector) stores, indexes, and queries embeddings next to transactional data.
Redis Cloud★ 75kFully-managed Redis with built-in vector search, offering low-latency similarity and hybrid queries over any embeddings.
Milvus★ 44.9kA distributed vector database for storing and searching billions of embeddings at scale, with multiple index types and Kubernetes-native deployment.
FAISS★ 40.4kA library from Meta for efficient similarity search and clustering of dense vectors, with both exact and approximate indexes.
Qdrant★ 32.5kA Rust-based vector search engine that stores embeddings with rich payload filtering for semantic search and recommendation systems.
Chroma★ 28.5kA developer-focused vector database designed for quickly building retrieval and RAG features with a simple Python and JavaScript API.
pgvector★ 21.8kA 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.8kOpen-source database for full-text, vector, and hybrid search