Manticore Search is a multi-storage database designed specifically for search, including full-text search. What distinguishes it from other solutions is:
- Modern MPP architecture and smart query parallelization capabilities allow to fully utilize all your CPU cores to lower response time as much as possible, when needed.
- Powerful and fast full-text searching which works fine for small and big datasets
- Traditional row-wise storage for small, medium and big size datasets
- Columnar storage support via the Manticore Columnar Library for bigger datasets (much bigger than can fit in RAM)
- SQL-first: Manticore's native syntax is SQL. It speaks SQL over HTTP and uses the MySQL protocol (you can use your preferred MySQL client)
- Clients for PHP, Python, JavaScript, Java and Go
- JSON over HTTP: to provide a more programmatic way to manage your data and schemas, Manticore provides a HTTP JSON protocol
- Written fully in C++: starts fast, doesn't take much RAM, and low-level optimizations provide good performance
- Real-time inserts: after an INSERT is made, the document can be read immediately
- Interactive courses for easier learning
- Built-in replication and load balancing
- Can sync from MySQL/PostgreSQL/ODBC/xml/csv out of the box
- Not fully ACID-compliant, but supports transactions and binlog for safe writes
Craigslist, Socialgist, PubChem and many others use Manticore for efficient searching and stream filtering.
Manticore Search was forked from Sphinx 2.3.2 in 2017.
- Full-text search and relevance:
- Over 20 full-text operators and over 20 ranking factors
- Custom ranking
- Other search capabilities:
- Rich filtering functionality
- Faceted search
- Geo-spatial search
- Spelling correction
- Autocomplete
- A wide range of functions for filtering and data manipulation
- NLP:
- Stream filtering using a "percolate" index
- High-availability:
- Data can be distributed across servers and data-centers
- Synchronous replication
- Built-in load balancing
- Security:
- 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
- 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:
Docker image is available on Docker Hub.
To experiment with Manticore Search in Docker just run:
docker run --name manticore --rm -d manticoresearch/manticore && docker exec -it manticore mysql -w && docker stop manticore
You can then: create an index, 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');
When you exit from the MySQL client, it stops and removes the container, 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.
sudo yum install https://repo.manticoresearch.com/manticore-repo.noarch.rpm
sudo yum install manticore manticore-columnar-lib
wget https://repo.manticoresearch.com/manticore-repo.noarch.deb
sudo dpkg -i manticore-repo.noarch.deb
sudo apt update
sudo apt install manticore manticore-columnar-lib
brew install manticoresearch
See instruction here.
See instruction here.
Should your company require any help - we provide full-cycle services in the areas of Sphinx and Manticore Search:
- Audit
- Support
- Consulting
- Development
- Training
Manticore Search is a GPLv2-licensed 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: