官网 • 下载 • 文档 • 博客 • 课程 • 论坛 • Slack • Telegram (英文) • Telegram (俄文) • Twitter • 用户反馈
简介
❗阅读最新的Manticore与Elasticsearch对比的博客文章❗
Manticore Search是一个易于使用的开源快速搜索数据库。它是Elasticsearch的良好替代品。以下是它与其他解决方案的区别:
- 速度非常快,因此比其他替代品更具成本效益,例如Manticore:
- 凭借其现代化的多线程架构和高效的查询并行化能力,Manticore能够充分利用所有CPU核心,实现最快的响应时间。
- 强大而快速的全文搜索可以无缝处理小型和大型数据集。
- 适用于小型、中型和大型数据集的行式存储。
- 对于更大的数据集,Manticore通过Manticore列式库提供列式存储支持,能够处理超出内存容量的数据集。
- 自动创建高性能的二级索引,节省时间和精力。
- 基于成本的查询优化器优化搜索查询以获得最佳性能。
- Manticore以SQL为主,使用SQL作为其原生语法,并提供与MySQL协议的兼容性,允许您使用首选的MySQL客户端。
- 提供PHP、Python、JavaScript、TypeScript、Java、Elixir和Go客户端,使与Manticore Search的集成变得简单。
- Manticore还提供了一个编程式HTTP JSON协议,用于更灵活的数据和模式管理。
- 使用C++构建,Manticore Search启动迅速,使用最少的内存,低级优化贡献了其令人印象深刻的性能。
- 实时插入功能使新添加的文档立即可访问。
- 通过交互式课程可轻松学习。
- Manticore还具有内置的复制和负载均衡功能,提高可靠性。
- 可以轻松地从MySQL、PostgreSQL、ODBC、XML和CSV等源同步数据。
- 虽然不完全符合ACID,但Manticore仍支持事务和binlog以确保安全写入。
- 使用内置工具和SQL命令轻松进行数据备份和恢复
Craigslist、Socialgist、PubChem、Rozetka等许多公司都使用Manticore进行高效搜索和流过滤。
Manticore Search于2017年从Sphinx 2.3.2分叉而来。
更多功能
- 全文搜索和相关性:
- 超过20个全文运算符和超过20个排名因子
- 自定义排名
- 其他搜索功能:
- 自然语言处理(NLP):
- 使用"渗滤"表进行流过滤
- 高可用性:
- 数据可以分布在服务器和数据中心之间
- 同步复制
- 内置负载均衡
- 安全性:
- 数据安全:
- manticore-backup工具和SQL命令BACKUP用于备份和恢复数据
- 数据存储:
- 行式存储 - 需要更多内存,提供更快的性能
- 列式存储 - 需要更少内存,仍提供不错的性能,但对某些类型的查询性能低于行式存储
- 文档存储 - 完全不需要内存,但只允许获取原始值,不支持排序/分组/过滤
- 性能优化:
- 二级索引
- 基于成本的优化器确定搜索查询的最有效执行计划
- 数据类型:
- 全文字段 - 倒排索引
- 行式和列式存储的int、bigint和float数值字段
- 多值属性(数组)
- 字符串和JSON
- 用于键值目的的磁盘上"存储"
- 集成:
安装
Docker
Docker 镜像可在 Docker Hub 上获取。
要在 Docker 中试用 Manticore Search,只需运行:
docker run -e EXTRA=1 --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
然后你可以:创建表格、添加数据和进行搜索。例如:
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');
请注意,退出 MySQL 客户端后,Manticore 容器将被停止并移除,导致数据不会被保存,因此这种方式仅用于测试/沙盒目的。
阅读Docker 镜像的完整说明以获取更多详情,包括我们对生产环境运行的建议。
安装包
Ubuntu、Debian、Centos、Windows 和 MacOS 的安装包在这里。
用于 RHEL/Centos/Amazon/Oracle Linux 的 YUM 仓库
sudo yum install https://repo.manticoresearch.com/manticore-repo.noarch.rpm
sudo yum install manticore manticore-extra
用于 Ubuntu/Debian/Mint 的 APT 仓库
wget https://repo.manticoresearch.com/manticore-repo.noarch.deb
sudo dpkg -i manticore-repo.noarch.deb
sudo apt update
sudo apt install manticore manticore-extra
MacOS 上的 Homebrew
brew install manticoresoftware/tap/manticore search manticoresoftware/tap/manticore-extra
Windows
参见这里的说明。
文档和社区网站
第三方集成
- https://dev.tiki.org/Manticore-Search - TikiWiki CMS Groupware 集成
- https://github.com/EvilFreelancer/laravel-manticoresearch - Laravel ManticoreSearch 插件
- https://www.mediawiki.org/wiki/Extension:SphinxSearch - MediaWiki 扩展
- https://github.com/gordonbanderson/silverstripe-manticore-search - SilverStripe 集成
- https://drwho.virtadpt.net/archive/2022-05-13/combining-manticore-and-searx/ - SearX 集成
- https://github.com/dimv36/sphinxlink - PostgreSQL 扩展,用于运行搜索查询并将数据作为 PostgreSQL 表返回
我们如何支持你
如果你的公司需要任何帮助 - 我们在 Sphinx 和 Manticore Search 领域提供全周期服务:
- 审计
- 支持
- 咨询
- 开发
- 培训
❤️ 你如何支持 Manticore Search
Manticore Search 是一个开源项目,其开发得益于我们的核心团队、贡献者和赞助商的支持。构建高级开源软件并非易事。如果你希望确保 Manticore Search 保持免费,这里有一些你可以帮助项目的方式:
许可证
Manticore Search 根据 GPLv3 或更高版本 分发。Manticore Search 使用并重新分发其他开源组件。请查看 组件许可证 目录了解详情。