Manticore Search: Lightweight Elasticsearch Alternative Claims 15x Speed Gains
Manticore Search, a C++-based search engine forked from Sphinx, claims to outperform Elasticsearch by up to 15x on small datasets and 4x on large data, offering SQL syntax, MySQL protocol compatibility, real-time inserts, and built-in replication while using minimal memory.
Manticore Search Introduction
Manticore Search is a high-performance search engine written in C++, created in 2017 as a fork of Sphinx Search. It has significantly improved upon Sphinx's functionality, fixed hundreds of bugs, and nearly completely rewritten the codebase while remaining open source. The project has garnered 3.7k stars on GitHub and positions itself as a strong alternative to Elasticsearch, with the goal of replacing the "E" in the ELK stack.
Performance Benchmarks
Official benchmarks from Manticore Research demonstrate substantial performance advantages over Elasticsearch across various scenarios:
For small datasets: 182x faster than MySQL (reproducible)
For log analysis: 29x faster than Elasticsearch (reproducible)
For small datasets: 15x faster than Elasticsearch (reproducible)
For medium-sized data: 5x faster than Elasticsearch (reproducible)
For large datasets: 4x faster than Elasticsearch (reproducible)
Single-server data import throughput: up to 2x faster than Elasticsearch (reproducible)
The performance gains are attributed to Manticore's modern multi-threaded architecture and efficient query parallelization, which fully utilize all CPU cores for minimal response times. Full benchmark details are available at: https://manticoresearch.com/blog/manticore-alternative-to-elasticsearch/
Key Features and Advantages
Speed and cost-effectiveness: Outperforms alternatives across data sizes
Storage flexibility: Row storage for small/medium/large datasets; columnar storage via Manticore Columnar Library for datasets exceeding memory
Automatic secondary indexes: Created automatically, saving time and effort
Cost-optimized query optimizer: Optimizes search queries for best performance
SQL-based with MySQL protocol compatibility: Uses SQL as native syntax; works with preferred MySQL clients
Multi-language client support: PHP, Python, JavaScript, Java, Elixir, Go
HTTP JSON protocol: For diverse data and schema management
C++ implementation: Fast startup, minimal memory usage, low-level optimizations
Real-time inserts: New documents immediately accessible
Built-in replication and load balancing: Increases reliability
Data synchronization: From MySQL, PostgreSQL, ODBC, XML, CSV
Transactions and binlog: Supports transactions and binary logging for safe writes (not fully ACID-compliant)
Backup and restore: Built-in tools and SQL commands
Companies using Manticore in production include Craigslist, Socialgist, PubChem, and Rozetka for efficient search and stream filtering.
Installation and Usage
Installation guide: https://manticoresearch.com/install/
Docker image available at: 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 manticoreSQL Examples
Create a table with full-text search configuration:
create table movies(title text, year int) morphology='stem_en' html_strip='1' stopwords='en';Insert sample data:
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), ('<a href="http://google.com/">Jurassic Park</a>', 1993), ('Ferris Bueller\'s Day Off', 1986);Search with highlighting:
select highlight(), year from movies where match('the dog');Search with faceting:
select highlight(), year from movies where match('days') facet year;Search for HTML-stripped content:
select * from movies where match('google');Resources
GitHub repository: https://github.com/manticoresoftware/manticoresearch
Full documentation and open source code available at the GitHub repository
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Architect's Guide
Dedicated to sharing programmer-architect skills—Java backend, system, microservice, and distributed architectures—to help you become a senior architect.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
