❗阅读有关 Manticore 与 Elasticsearch 的最新博客文章❗
Manticore Search 是一款易于使用的开源快速搜索数据库。是 Elasticsearch 的良好替代品。它与其他解决方案的区别在于:
- 它非常快,因此比其他替代方案更具成本效益,例如 Manticore 具有以下优势:
- 凭借其现代多线程架构和高效的查询并行化功能,Manticore 能够充分利用所有 CPU 内核来实现最快的响应时间。
- 强大而快速的全文搜索可以无缝地处理小型和大型数据集。
- 适用于小型、中型和大型数据集的按行存储。
- 对于更大的数据集,Manticore 通过Manticore 列式库提供列式存储支持,能够处理太大而无法在 RAM 中容纳的数据集。
- 自动创建高性能二级索引,节省您的时间和精力。
- 基于成本的查询优化器优化搜索查询以获得最佳性能。
- Manticore 是 SQL-first 的,使用 SQL 作为其本机语法,并提供与 MySQL 协议的兼容性,允许您使用您喜欢的 MySQL 客户端。
- 借助PHP、Python、JavaScript、Typescript、Java、Elixir和Go等客户端,与 Manticore Search 的集成变得容易。
- Manticore 还提供了编程性 HTTP JSON 协议,以实现更加灵活的数据和模式管理。
- Manticore Search 采用 C++ 构建,启动迅速且占用极少的 RAM,并且低级优化有助于实现出色的性能。
- 通过实时插入,新添加的文档可以立即访问。
- 通过交互式课程可以获得交互式课程,使学习变得轻而易举。
- 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用于备份和恢复数据
- 数据存储:
- 按行 - 需要更多 RAM,提供更快的性能
- 列式 - 需要较少的 RAM,仍然提供不错的性能,但对于某些类型的查询来说,其性能低于行式存储
- docstore - 根本不需要 RAM,但只允许获取原始值,而不允许排序/分组/过滤
- 性能优化:
- 二级索引
- 基于成本的优化器确定搜索查询的最有效执行计划
- 数据类型:
- 全文字段-倒排索引
- 行列式 int、bigint 和 float 数字字段
- 多值属性(数组)
- 字符串和 JSON
- 磁盘上“存储”用于键值对
- 集成:
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 镜像的完整说明以获取更多详细信息,包括我们对在生产中运行它的建议。
sudo yum install https://repo.manticoresearch.com/manticore-repo.noarch.rpm
sudo yum install manticore manticore-extra
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
brew install manticoresoftware/tap/manticoresearch manticoresoftware/tap/manticore-extra
请参阅此处的说明。
- https://dev.tiki.org/Manticore-Search - TikiWiki CMS 群件集成
- 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 在GPLv3 或更高版本下分发。Manticore Search 使用并重新分发其他开源组件。请查看组件许可证目录了解详细信息。