Manticore Search 技术推荐文档
今天推荐一个不错的开源搜索引擎数据库,如果文章对您有帮助记得点赞、收藏、加关注哦!!!话不多说上内容。
官方网站链接:
https://manticoresearch.com/
概述
Manticore Search 是一个易于使用的开源搜索引擎数据库,是 Elasticsearch 的优秀替代品。它以其卓越的速度和成本效益而著称,相较于其他解决方案,Manticore Search 具有以下特点:
- 速度极快,成本效率更高
- 现代多线程架构和高效的查询并行化能力
- 强大的全文搜索,适用于各种大小的数据集
- 支持行式存储和列式存储
- 基于成本的查询优化器
- SQL 优先,使用 SQL 作为原生语法,并提供 MySQL 协议兼容性
- 支持多种客户端,包括 PHP、Python、JavaScript、Typescript、Java、Elixir 和 Go
- 内置 C++,快速启动,使用最少的 RAM
- 支持实时插入,新添加的文档立即可用
- 内置复制和负载均衡,提高可靠性
- 支持事务和 binlog 以确保安全写入
- 支持数据备份和恢复
- 从 MySQL、PostgreSQL、ODBC、XML 和 CSV 等源同步数据
Manticore Search 于 2017 年从 Sphinx 2.3.2 分叉而来。
全文搜索与相关性
- 20 多种全文操作符和 20 多种排名因素
- 自定义排名
其他搜索能力
- 丰富的过滤功能
- 面向方面的搜索
- 地理空间搜索
- 向量搜索
- 连接表
- 拼写更正
- 自动完成
自然语言处理 (NLP)
- 词干提取
- 词形还原
- 停用词
- 同义词
- 词形
- 高级字符和单词级别的标记化
- 适当的中文分词
- 文本高亮
高可用性
- 数据可在服务器和数据中心之间分布
- 同步复制
- 内置负载均衡
安全性
- HTTPS 支持
- 只读模式
数据存储
- 行式 - 需要更多 RAM,提供更快的性能
- 列式 - 需要较少 RAM,对于某些类型的查询性能略低于行式存储
- docstore - 不需要 RAM,但只允许获取原始值,不支持排序/分组/过滤
性能优化
- 次要索引
- 成本基础优化器确定搜索查询的最有效执行计划
数据类型
- 完全文本字段 - 倒排索引
- 行式和列式整数、长整数和浮点数字段
- 多值属性(数组)
- 字符串和 JSON
- 磁盘上的 "stored" 用于键值目的
集成
- 从 MySQL 和 PostgreSQL 同步
- 从 XML 同步
- 从 CSV 同步
- 作为 MySQL 的存储引擎
- 通过 FEDERATED 引擎与 MySQL 集成
- 与 ProxySQL、Apache Superset、Grafana、Fluentbit、Logstash/Filebeat、Vector.dev、Mysqldump 等集成
yum源安装
1. 安装Manticore Search YUM仓库
首先,您需要添加Manticore Search的官方YUM仓库到您的系统。打开终端并执行以下命令:
sudo yum install https://repo.manticoresearch.com/manticore-repo.noarch.rpm
2. 升级前的准备工作
如果您正在从旧版本升级到新版本,为了避免由包结构更新引起的冲突,建议先移除旧的Manticore Search包。请注意,这不会删除您的数据。如果您对配置文件进行了更改,它将被保存到
/etc/manticoresearch/manticore.conf.rpmsave。
执行以下命令来移除旧的Manticore Search包:
sudo yum --setopt=tsflags=noscripts remove 'manticore*'
3. 安装Manticore Search及其附加组件
在成功添加YUM仓库并(如果需要的话)移除旧版本后,您可以继续安装Manticore Search及其附加组件。使用以下命令:
sudo yum install manticore manticore-extra
4. 启动Manticore Search服务
安装完成后,您需要启动Manticore Search服务。执行以下命令:
sudo systemctl start manticore
5. 验证服务状态
为了确保Manticore Search服务已经成功启动,您可以检查服务的状态:
sudo systemctl status manticore
Docker安装
Manticore Search 的 Docker 镜像可在 Docker Hub 上获得。使用以下命令在 Docker 中运行 Manticore Search:
docker run -e EXTRA=1 --name manticore --rm -d manticoresearch/manticore && echo "Waiting for Manticore docker to start. Consider mapping the data_dir to make it start faster next time" && until docker logs manticore 2>&1 | grep -q "accepting connections"; do sleep 1; echo -n .; done && echo && docker exec -it manticore mysql && docker stop manticore
包管理器
- Ubuntu、Debian、Centos、Windows 和 MacOS 包在此提供。
- YUM 仓库适用于 RHEL/Centos/Amazon/Oracle Linux
- APT 仓库适用于 Ubuntu/Debian/Mint
- MacOS 上的 Homebrew
- Windows 用户请参考此处的安装指南。
第三方集成
- TikiWiki CMS Groupware 集成
- Laravel ManticoreSearch 插件
- MediaWiki 扩展
- SilverStripe 集成
- SearX 集成
- PostgreSQL 的 Sphinxlink 扩展
许可
Manticore Search 在 GPLv3 或更高版本下分发。Manticore Search 使用并重新分发其他开源组件。有关详细信息,请查看组件许可证目录。