Easy to use open source fast database for search
Manticore Search is an easy-to-use, open-source, and fast database designed for search. It is a great alternative to Elasticsearch.
Website • Downloads • Docs • Blog • Courses • Forum • Slack • Telegram (En) • Telegram (Ru) • Twitter • User feedback
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:
182x faster than MySQL for small data (reproducible❗)
29x faster than Elasticsearch for log analytics (reproducible❗)
15x faster than Elasticsearch for small dataset (reproducible❗)
5x faster than Elasticsearch for medium-size data (reproducible❗)
4x faster than Elasticsearch for big data (reproducible❗)
up to 2x faster max throughput than Elasticsearch's for data ingestion on a single server (reproducible❗)
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.
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.
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 and SQL BACKUP command
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
Full-text search and relevance:
Over 20 full-text operators and over 20 ranking factors
Custom ranking
Other search capabilities:
Rich filtering functionality
Fuzzy search
Faceted search
Geo-spatial search
Vector search
Joining tables
Spelling correction
Autocomplete
A wide range of functions for filtering and data manipulation
Natural language processing (NLP):
Stemming
Lemmatization
Stopwords
Synonyms
Wordforms
Advanced tokenization at character and word level
Proper Chinese segmentation
Text highlighting
Stream filtering:
using a "percolate" table
or the Kafka integration
High-availability:
Data can be distributed across servers and data-centers
Synchronous replication
Built-in load balancing
Security:
https support
read-only mode
Data safety:
manticore-backup tool and SQL command BACKUP to back up and restore your data
Data storages:
row-wise - requires more RAM, provides faster performance
columnar - requires less RAM, still provides decent performance, but lower than the row-wise storage for some kinds of queries
docstore - doesn't require RAM at all, but allows only fetching original value, not sorting/grouping/filtering
Performance optimizations:
Secondary indexes
Cost-based optimizer determines the most efficient execution plan of a search query
Data types:
full-text field - inverted index
int, bigint and float numeric fields in row-wise and columnar fashion
multi-value attributes (array)
string and JSON
on-disk "stored" for key-value purpose
Integrations:
Sync from MySQL and PostgreSQL
Sync from XML
Sync from CSV
Sync from ODBC
Sync from MS SQL
Sync from Kafka
With MySQL as a storage engine
With MySQL via FEDERATED engine
ProxySQL
Apache Superset
Grafana
Fluentbit
Kibana (Demo)
Logstash/Filebeat
Vector.dev
Mysqldump
Manticore Columnar Library
Installation
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://googl**e.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.
Packages
Ubuntu, Debian, Centos, Windows and MacOS packages are here.
YUM repo for RHEL/Centos/Amazon/Oracle Linux
sudo yum install https://repo.**manticorese*arch.com/manticore-repo.noarch.rpm sudo yum install manticore manticore-extra
APT repo for Ubuntu/Debian/Mint
wget https://repo.mantico*re**search.com/manticore-repo.noarch.deb sudo dpkg -i manticore-repo.noarch.deb sudo apt update sudo apt install manticore manticore-extra
Homebrew on MacOS
brew install manticoresoftware/tap/manticoresearch manticoresoftware/tap/manticore-extra
Windows
See instruction here.
Clouds
Elestio
Hosting Ukraine
Documentation and community sites
Documentation
Interactive courses
Manticore Community Forum
Public Slack chat
Public Telegram chat (En)
Public Telegram chat (Ru)
Bug tracker
Third-party integrations
https://dev.*t*i*ki.org/Manticore-Search - TikiWiki CMS Groupware integration
https://github.**c*om/EvilFreelancer/laravel-manticoresearch - Laravel ManticoreSearch plugin
https://www.media*w*i*ki.org/wiki/Extension:SphinxSearch - extension for MediaWiki
https://github.***com/gordonbanderson/silverstripe-manticore-search - integration for SilverStripe
https://drwho.*vi**rtadpt.net/archive/2022-05-13/combining-manticore-and-searx/ - integration for SearX
https://gi*th*ub*.com/dimv36/sphinxlink - Extension for PostgreSQL for running search queries and returning data as PostgreSQL tables
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:
Donation through PayPal
Become our client and let us help you
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.
通过命令行克隆项目: