Introduction
ManticoreSearch is a fork and evolution of Sphinx Search, rebuilt for modern workloads. It combines full-text search with columnar analytics and real-time indexing, all accessible through standard SQL. It is designed for scenarios where you need sub-second search over millions of documents without deploying a heavy JVM-based stack.
What ManticoreSearch Does
- Provides full-text search with BM25 ranking, stemming, morphology, and tokenization
- Supports real-time INSERT, UPDATE, and DELETE operations on indexes
- Offers columnar storage for analytical queries on structured numeric and string fields
- Exposes a MySQL-compatible protocol so any MySQL client or connector works out of the box
- Handles auto-sharding and replication for horizontal scaling across nodes
Architecture Overview
ManticoreSearch runs as a single daemon (searchd) that manages indexes stored on disk. Real-time indexes accept writes immediately through a WAL-backed memory buffer that flushes to disk segments. Plain indexes are built from external data sources via an indexing tool. The query engine parses SQL, applies full-text matching and filters, and returns results through the MySQL protocol or a JSON HTTP API.
Self-Hosting & Configuration
- Available as DEB/RPM packages, Docker images, or compiled from source
- Configuration through a manticore.conf file defining indexes, listen ports, and replication settings
- Real-time indexes require no external indexing step; data is inserted via SQL
- Set up replication with built-in Galera-based cluster support for high availability
- Use the HTTP JSON API at port 9308 for REST-style integration alongside MySQL protocol
Key Features
- MySQL-compatible SQL interface with full-text MATCH() syntax and standard WHERE clauses
- Columnar storage engine for fast aggregation on large datasets without external OLAP tools
- Built-in auto-sharding distributes large indexes across multiple nodes transparently
- Percolate queries allow storing queries and matching incoming documents against them
- Buddy system provides automatic schema inference and simplified table management
Comparison with Similar Tools
- Elasticsearch — More mature ecosystem and tooling; significantly higher resource usage
- Meilisearch — Optimized for typo-tolerant instant search; no SQL interface or columnar storage
- ZincSearch — Lightweight Go-based alternative; less mature query language and feature set
- Typesense — Simple hosted search with easy ranking; no SQL or analytical query support
- Sphinx — ManticoreSearch is the actively maintained successor with real-time and columnar features added
FAQ
Q: Can I migrate from Sphinx to ManticoreSearch? A: Yes. ManticoreSearch is backward-compatible with Sphinx index formats and most configuration directives.
Q: Does it support vector search? A: ManticoreSearch has added KNN vector search support for hybrid full-text and vector queries.
Q: How does it compare to Elasticsearch in performance? A: For text search on a single node, ManticoreSearch is often faster and uses far less RAM. Elasticsearch has advantages in distributed analytics at very large scale.
Q: What client libraries are available? A: Any MySQL client library works. Official clients are available for PHP, Python, Java, and JavaScript.