ランキングに戻る

manticoresoftware/manticoresearch

C++manticoresearch.com

Open-source search database for full-text, vector, and hybrid search with real-time indexing and SQL.

search-enginesearchmysqlsphinxsearchcppstream-filteringfull-text-searchbm25search-serversqljsonapi
スター成長
スター
11.9k
フォーク
633
週間成長
Issue
625
5k10k
2017年6月2020年6月2023年7月2026年7月
README

Manticore Search Logo

Manticore Search is an easy-to-use, open-source, and fast database designed for search. It is a great alternative to Elasticsearch.

manticoresoftware%2Fmanticoresearch | Trendshift

WebsiteDownloadsDocsBlogCoursesForumSlackTelegram (En)Telegram (Ru)TwitterUser feedback

License: GPLv3 or later GitHub Actions Workflow Status Twitter Follow Slack Docker pulls Newsletter Activity GitHub closed issues

Introduction

❗Read recent blog post about Manticore vs Elasticsearch

What distinguishes it from other solutions is:

  • It's very fast and therefore more cost-efficient than alternatives, for example Manticore is:
  • With its modern multithreading architecture and efficient query parallelization capabilities, Manticore is able to fully utilize all your CPU cores to achieve the quickest response times possible.
  • The powerful and speedy full-text search works seamlessly with both small and large datasets.
  • Hybrid search combines full-text and vector retrieval in a single query for better relevance.
  • Conversational search lets existing vectorized tables answer questions with KNN retrieval, conversation history, and LLM-backed responses through SQL CALL CHAT or the HTTP JSON /search endpoint.
  • Row-wise storage for small, medium and big size datasets.
  • For even larger datasets, Manticore offers columnar storage support through the Manticore Columnar Library, capable of handling datasets too big to fit in RAM.
  • Performant secondary indexes are automatically created using the PGM-index (Piecewise Geometric Model index), which provides efficient mapping between indexed keys and their memory locations.
  • The cost-based query optimizer uses statistical data about indexed data to evaluate and determine the most efficient execution plan.
  • Manticore is SQL-first, utilizing SQL as its native syntax, and offers compatibility with the MySQL protocol, allowing you to use your preferred MySQL client.
  • With clients available in PHP, Python, Python asyncio JavaScript, Typescript, Java, Elixir, Go, and Rust, integration with Manticore Search becomes easy.
  • Manticore also provides a programmatic HTTP JSON protocol for more versatile data and schema management, with Elasticsearch-compatible writes support.
  • Sharded tables transparently distribute reads and writes across multiple physical shards on one node or across a replication cluster.
  • Built-in authentication and authorization secures MySQL, HTTP/HTTPS, distributed remote agents, and replication-related operations with users, bearer tokens, and fine-grained permissions.
  • Built in C++, Manticore Search starts quickly and uses minimal RAM (around 40MB RSS for an empty instance), with low-level optimizations contributing to its impressive performance.
  • With real-time inserts, newly added or updated documents are immediately accessible.
  • Interactive courses are available through Interactive courses to make learning a breeze.
  • Manticore also boasts built-in virtually synchronous multi-master replication using the Galera library and load balancing capabilities.
  • Data can be synced from sources such as MySQL, PostgreSQL, ODBC, xml, and csv with ease.
  • While not fully ACID-compliant, Manticore supports isolated transactions and binary logging for safe writes.
  • Effortless data backup and recovery with built-in tools like manticore-backup, SQL BACKUP, and S3-compatible backup/restore support

Craigslist, Socialgist, PubChem, Rozetka and many others use Manticore for efficient searching and stream filtering.

Manticore Search was forked from Sphinx 2.3.2 in 2017.

More features

Installation

Quick install

For Linux and macOS with Homebrew, use the one-line installer:

curl https://manticoresearch.com | sh

It detects Debian/Ubuntu/Mint, RHEL/CentOS/Amazon/Oracle/Fedora-like RPM systems, and macOS with Homebrew. It configures the official Manticore repository when needed, installs manticore, starts the service when supported, and prints the result.

Common commands:

curl https://manticoresearch.com | sh -s help
curl https://manticoresearch.com | sh -s list-versions
curl https://manticoresearch.com | sh -s version 25.0.0
curl https://manticoresearch.com | sh -s dev
curl https://manticoresearch.com | sh -s upgrade

Docker

Docker image is available on Docker Hub.

To experiment with Manticore Search in Docker just run:

docker run --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 manticore

You can then: create a table, add data and run searches. For example:

create table movies(title text, year int) morphology='stem_en' html_strip='1' stopwords='en';

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);

select highlight(), year from movies where match('the dog');

select highlight(), year from movies where match('days') facet year;

select * from movies where match('google');

Note that upon exiting the MySQL client, the Manticore container will be stopped and removed, resulting in no saved data, so use this way only for testing / sandboxing purposes.

Read the full instruction for the docker image for more details including our recommendations on running it in production.

Manual package installation

If you prefer explicit package-manager commands, use the manual instructions below or see the downloads page.

RPM repo for RHEL/CentOS/Amazon/Oracle/Fedora-like Linux

sudo yum install https://repo.manticoresearch.com/manticore-repo.noarch.rpm
sudo yum install manticore

or use dnf when available:

sudo dnf install https://repo.manticoresearch.com/manticore-repo.noarch.rpm
sudo dnf install manticore

APT repo for Ubuntu/Debian/Mint

wget https://repo.manticoresearch.com/manticore-repo.noarch.deb
sudo apt install ./manticore-repo.noarch.deb
sudo apt update
sudo apt install manticore

Homebrew on macOS

brew install manticoresoftware/tap/manticoresearch manticoresoftware/tap/manticore-extra

Windows

For WSL/WSL2, use the Linux installer inside the WSL distribution. For native Windows, see the Windows installation instructions.

Clouds

Documentation and community sites

Third-party integrations

How we can support you

Should your company require any help - we provide full-cycle services in the areas of Sphinx and Manticore Search:

  • Audit
  • Support
  • Consulting
  • Development
  • Training

More details here

❤️ How you can support Manticore Search

Manticore Search is an Open Source project with development made possible by support from our core team, contributors, and sponsors. Building premium Open Source software is not easy. If you would like to make sure Manticore Search stays free, here is how you can help the project:

License

Manticore Search is distributed under GPLv3 or later. Manticore Search uses and re-distributes other open-source components. Please check the component licenses directory for details.

関連リポジトリ
elastic/elasticsearch

Free and Open Source, Distributed, RESTful Search Engine

JavaMavenOtherelasticsearchjava
elastic.co/products/elasticsearch
77.6k26.1k
meilisearch/meilisearch

A lightning-fast search engine API bringing AI-powered hybrid search to your sites and applications.

Rustcrates.ioOthersearch-enginetypo-tolerance
meilisearch.com
58.7k2.6k
ItzCrazyKns/Vane

Vane is an AI-powered answering engine.

TypeScriptnpmMIT Licenseai-search-enginesearch-engine
35.8k3.9k
searxng/searxng

SearXNG is a free internet metasearch engine which aggregates results from various search services and databases. Users are neither tracked nor profiled.

PythonPyPIGNU Affero General Public License v3.0metasearchsearch
docs.searxng.org
34.2k3.2k
qdrant/qdrant

Qdrant - High-performance, massive-scale Vector Database and Vector Search Engine for the next generation of AI. Also available in the cloud https://cloud.qdrant.io/

Rustcrates.ioApache License 2.0neural-networksearch-engine
qdrant.tech
33.5k2.5k
typesense/typesense

Open Source alternative to Algolia + Pinecone and an Easier-to-Use alternative to ElasticSearch ⚡ 🔍 ✨ Fast, typo tolerant, in-memory fuzzy Search Engine for building delightful search experiences

C++GNU General Public License v3.0search-enginesearch
typesense.org
26.3k955
valeriansaliou/sonic

🦔 Fast, lightweight & schema-less search backend. An alternative to Elasticsearch that runs on a few MBs of RAM.

Rustcrates.ioMozilla Public License 2.0rustinfrastructure
crates.io/crates/sonic-server
21.3k615
ItzCrazyKns/Perplexica

Perplexica is an AI-powered search engine. It is an Open source alternative to Perplexity AI

TypeScriptnpmMIT Licenseai-search-engineperplexity-ai
20.4k2k
weaviate/weaviate

Weaviate is an open-source vector database that stores both objects and vectors, allowing for the combination of vector search with structured filtering with the fault tolerance and scalability of a cloud-native database​.

GoGo ModulesBSD 3-Clause "New" or "Revised" Licensesearch-enginesemantic-search
weaviate.io/developers/weaviate/
16.6k1.4k
quickwit-oss/tantivy

Tantivy is a full-text search engine library inspired by Apache Lucene and written in Rust

Rustcrates.ioMIT Licensesearch-enginerust
15.6k947
alibaba/zvec

A lightweight, lightning-fast, in-process vector database

C++Apache License 2.0ragagent-skills
zvec.org
15.2k958
nextapps-de/flexsearch

Next-generation full-text search library for Browser and Node.js

JavaScriptnpmApache License 2.0searchsearch-algorithm
13.8k521