manticoresearch README

The project's README from github.com/manticoresoftware/manticoresearch. As one markdown file: README.md.

Manticore Search Logo

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.

manticoresoftware%2Fmanticoresearch | Trendshift

Website • Downloads • Docs • Blog • Courses • Forum • Slack • Telegram (En) • Telegram (Ru) • Twitter • User feedback

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

Introduction

What distinguishes Manticore from other solutions is:

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

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.

Documentation and community sites

Third-party integrations

How we can support you

Should your company require any help - we provide full-cycle services:

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.

manticoresearch (manticoresoftware/manticoresearch)

Searching Database…

这是什么?Manticore Search 是一个开源搜索数据库,支持全文搜索、向量搜索和混合搜索,具备实时索引和 SQL 支持。它定位为比 Elasticsearch 更快、性价比更高的替代方案。
这是我要自己运行的数据库服务器,还是要嵌入项目里的库?它是一个独立的数据库服务器,拥有自己的 SQL 方言、兼容 MySQL 的通信协议以及 HTTP JSON API。官方提供 PHP、Python、JavaScript、TypeScript、Java、Elixir、Go 和 Rust 的客户端库,用于与它通信。
怎么把它跑起来?在使用 Homebrew 的 Linux 或 macOS 上,有一个一行命令的安装脚本,它会识别操作系统、配置官方软件源,并安装和启动服务。也可以从 Docker Hub 拉取 Docker 镜像,运行容器来试用。
运行它时,还需要同时运行 MySQL 或 Elasticsearch 吗?不需要。Manticore 是一个自包含的数据库,你只需要一个兼容 MySQL 的客户端(或 HTTP API)来与它通信,不需要外部搜索引擎。
如果写入数据时突然崩溃,我的数据安全吗?Manticore 并非完全符合 ACID 特性,不过它支持隔离事务和二进制日志。备份可以通过 manticore-backup 工具、SQL BACKUP,或兼容 S3 的备份与恢复功能完成。
它也能在 Windows 上运行吗,还是只支持 Linux/macOS?Linux(Debian/Ubuntu、RHEL/CentOS/Fedora 系列)和 macOS(通过 Homebrew)都有原生安装程序。在 Windows 上需要使用 WSL/WSL2 并搭配 Linux 安装程序;不过文档中也单独介绍了原生 Windows 安装方式。
实际使用中,它比 Elasticsearch 快多少?在引用的基准测试中,对于超过 1 亿条 Hacker News 评论的数据,Manticore 比经过调优的 Elasticsearch 快约 3.85 倍;在日志写入场景中,它占用的 CPU 和内存也明显更少。
它能在做普通全文搜索的同时进行向量搜索吗?可以。混合搜索可以在一次查询中同时结合全文检索和向量检索。已有的向量化表甚至可以借助 KNN 检索和基于 LLM 的回复,通过 SQL CALL CHAT 或 HTTP /search 端点实现对话式搜索。
如果只是通过 Docker 试用,我的数据会怎样?快速入门用的 Docker 容器仅供测试:一旦退出 MySQL 客户端,容器就会停止并被删除,你创建的所有数据都会随之清除。
它能处理超出内存容量的数据集吗?可以。它的列式存储(由 Manticore Columnar Library 提供支持)专为超过可用内存大小的数据集设计,以牺牲一部分查询速度为代价,换取大幅降低的内存占用。
Size
108.7 MB
Stars
12.1K
Age
9y
Commits · 90 Days