# ManticoreSearch — Fast Open-Source Search Engine with SQL > ManticoreSearch is a high-performance open-source search engine that supports full-text search, columnar storage, and real-time indexing. It provides a MySQL-compatible SQL interface and can serve as a drop-in replacement for Sphinx. ## Install Save in your project root: # ManticoreSearch — Fast Open-Source Search Engine with SQL ## Quick Use ```bash # Install on Ubuntu/Debian wget https://repo.manticoresearch.com/manticore-repo.noarch.deb dpkg -i manticore-repo.noarch.deb && apt update && apt install -y manticore # Or run with Docker docker run -p 9306:9306 -p 9308:9308 manticoresearch/manticore # Connect via MySQL client and create a table mysql -h 127.0.0.1 -P 9306 -e "CREATE TABLE movies (title text, year int); INSERT INTO movies (title, year) VALUES ('The Matrix', 1999); SELECT * FROM movies WHERE MATCH('matrix');" ``` ## 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. ## Sources - https://github.com/manticoresoftware/manticoresearch - https://manual.manticoresearch.com/ --- Source: https://tokrepo.com/en/workflows/bb36226f-3abd-11f1-9bc6-00163e2b0d79 Author: AI Open Source