Databases 7 min read

Introducing Manticore Search: A High‑Performance Lightweight Alternative to Elasticsearch

Manticore Search is a modern, open‑source C++‑based full‑text search engine that claims up to 15‑times faster performance than Elasticsearch in certain scenarios, offering SQL compatibility, multi‑threaded architecture, columnar storage, Docker deployment, and extensive client language support.

Architect
Architect
Architect
Introducing Manticore Search: A High‑Performance Lightweight Alternative to Elasticsearch

Introduction

Manticore Search is a high‑performance, open‑source search engine written in C++ and launched in 2017 as the successor to Sphinx Search. It rewrites much of the original code, fixes hundreds of bugs, and adds modern features, positioning itself as a lightweight, full‑featured alternative to Elasticsearch.

Advantages

Key benefits include:

Significant speed improvements – up to 15× faster than Elasticsearch in some benchmarks.

Exceptional performance on small datasets (182× faster than MySQL) and various data sizes, with consistent speed gains across small, medium, and large workloads.

Efficient multi‑threaded query parallelism that fully utilizes CPU cores.

Rich full‑text search capabilities for both small and large datasets.

Row‑level storage for all data sizes and columnar storage via the Manticore Columnar Library for very large datasets.

Automatic secondary index creation, cost‑optimized query optimizer, and SQL‑based native syntax compatible with the MySQL protocol.

Broad client support (PHP, Python, JavaScript, Java, Elixir, Go) and an HTTP JSON protocol for flexible data handling.

Fast startup, minimal memory footprint, real‑time document insertion, built‑in replication and load balancing, and tools for backup and recovery.

Notable users include Craigslist, Socialgist, PubChem, Rozetka, and many others.

Installation & Usage

Installation instructions are available at https://manticoresearch.com/install/ . Docker images can be pulled from Docker Hub:

https://hub.docker.com/r/manticoresearch/manticore/

To run Manticore Search in Docker:

docker run -e EXTRA=1 --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

After the container is ready, you can create tables, insert data, and perform searches. Example SQL commands:

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

insert into movies(title, year) values 
  ('The Seven Samurai', 1954),
  ('Bonnie and Clyde', 1954),
  ('Reservoir Dogs', 1992),
  ('Airplane!', 1980),
  ('Raging Bull', 1980),
  ('Groundhog Day', 1993),
  ('
Jurassic Park
', 1993),
  ('Ferris Bueller''s Day Off', 1986);

select highlight(), year from movies where match('the dog');
select highlight(), year from movies where match('days') facet year;
select * from movies where match('google');

Documentation & Source

Complete documentation and source code are available at:

https://github.com/manticoresoftware/manticoresearch

For further reading, the author references a detailed benchmark comparing Manticore Search to Elasticsearch: https://manticoresearch.com/blog/manticore-alternative-to-elasticsearch/.

DockerSQLsearch engineC++Full-Text SearchManticore SearchElasticsearch alternative
Architect
Written by

Architect

Professional architect sharing high‑quality architecture insights. Topics include high‑availability, high‑performance, high‑stability architectures, big data, machine learning, Java, system and distributed architecture, AI, and practical large‑scale architecture case studies. Open to ideas‑driven architects who enjoy sharing and learning.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.