explaingit

manticoresoftware/manticoresearch

11,790C++Audience · ops devopsComplexity · 4/5LicenseSetup · moderate

TLDR

Manticore Search is an open-source, SQL-compatible full-text search database that is designed to be significantly faster and cheaper than Elasticsearch for teams running search at scale.

Mindmap

mindmap
  root((manticoresearch))
    What It Does
      Full-text search
      Log analytics
      Real-time inserts
    Interfaces
      SQL queries
      MySQL protocol
      HTTP JSON API
    Storage Options
      Row-wise storage
      Columnar storage
    Data Sources
      MySQL sync
      PostgreSQL sync
      CSV and XML
    Clients
      Python
      Go
      PHP
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Replace Elasticsearch with a faster, lower-cost search backend for a log analytics pipeline.

USE CASE 2

Add full-text search to an existing app using standard SQL queries and any MySQL client library.

USE CASE 3

Sync data from MySQL or PostgreSQL into a real-time searchable index that reflects inserts immediately.

USE CASE 4

Store and query datasets too large to fit in RAM using the separate columnar storage option.

Tech stack

C++SQLMySQL protocolHTTP JSON APIPHPPythonJavaScriptGo

Getting it running

Difficulty · moderate Time to first run · 1h+

Requires installing the Manticore Search server binary and configuring an index schema before you can run queries.

GPL v3, free to use and modify, but any software you distribute that includes this code must also be released as open source under GPL v3.

In plain English

Manticore Search is an open-source database built specifically for search workloads. It was forked from the Sphinx Search engine in 2017 and has since been rewritten substantially in C++. Its primary use case is full-text search across large collections of data, and it positions itself as a faster, lower-cost alternative to Elasticsearch for teams running search at scale. The project claims significant speed advantages over both MySQL and Elasticsearch across a range of benchmark scenarios, from log analytics to large dataset queries. These benchmarks are published on a separate site and described as reproducible. The performance gains come from a multithreading architecture that spreads work across all available CPU cores, a cost-based query optimizer that picks efficient execution plans based on index statistics, and automatically created secondary indexes using a method called PGM-index. Manticore uses SQL as its primary language and is compatible with the MySQL wire protocol, which means existing MySQL client libraries and tools can connect to it without modification. It also supports an HTTP JSON API with partial compatibility with Elasticsearch, so teams migrating from Elasticsearch can reuse some existing tooling. Official client libraries are available for PHP, Python, JavaScript, TypeScript, Java, Go, Elixir, and Rust. Storage options include row-wise storage for standard datasets and a separate columnar storage library for datasets too large to fit in RAM. Real-time inserts make newly added documents immediately searchable. The system includes built-in multi-master replication and load balancing, and data can be synced from MySQL, PostgreSQL, XML, and CSV sources. Companies including Craigslist and PubChem are listed as users. The binary starts with around 40 MB of RAM overhead for an empty instance. The project is licensed under GPL v3.

Copy-paste prompts

Prompt 1
Help me write a Manticore Search SQL query that does full-text search on a 'description' column and ranks results by stars descending.
Prompt 2
Show me how to configure Manticore Search replication across two nodes for high availability, using its built-in multi-master setup.
Prompt 3
Write a Python script using the official Manticore Python client to insert documents in bulk and then query them with a full-text filter.
Prompt 4
I'm migrating from Elasticsearch to Manticore Search. Map this Elasticsearch JSON query to the equivalent Manticore HTTP JSON API call.
Prompt 5
Set up a Manticore Search data source sync from a PostgreSQL table so new rows are indexed in real time.
Open on GitHub → Explain another repo

← manticoresoftware on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.