Configs2026年4月18日·1 分钟阅读

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.

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

讨论

登录后参与讨论。
还没有评论,来写第一条吧。

相关资产