本手册的编排反映了您最可能使用 Manticore 的方式:
- 从关于它的基本信息以及如何安装和连接开始
- 重要内容如添加文档和运行搜索
- 性能优化技巧、窍门以及通过插件和自定义函数扩展 Manticore
手册的关键部分在菜单中用 1️⃣、2️⃣、3️⃣ 等标记,方便您查阅,因为对应的功能是最常用的。如果您是 Manticore 新手,强烈建议不要跳过这些部分。
如果您想快速了解 Manticore 的工作原理,⚡ 快速入门指南 是一个很好的起点。
每个查询示例右上角都有一个小图标 📋:

您可以用它将示例复制到剪贴板。如果查询是 HTTP 请求,它将被复制为 CURL 命令。按下 ⚙️ 可以配置主机/端口。
我们热爱搜索,并尽力使本手册中的搜索尽可能方便。当然,它是由 Manticore Search 支持的。除了使用需要先打开手册的搜索栏外,还有一种非常简单的方式,只需打开 mnt.cr/your-search-keyword 即可查找内容:

您需要了解关于 Manticore Search 的一些内容,这有助于您遵循最佳使用实践。
- 实时表 允许添加、更新和删除文档,且更改立即生效。
- 普通表 是一种大部分不可变的数据结构,是实时表的基本元素。普通表存储一组文档、它们的公共字典和索引设置。一个实时表可以由多个普通表(块)组成,但除此之外,Manticore 还提供了使用工具 indexer 直接构建普通表的功能。当您的数据大部分不可变时,这很有意义,因此您不需要实时表。
Manticore Search 有两种工作模式:
- 实时模式(RT 模式)。这是默认模式,允许您命令式地管理数据模式:
- 允许使用 SQL 命令
CREATE/ALTER/DROP TABLE及其非 SQL 客户端等效命令在线管理数据模式 - 在配置文件中只需定义与服务器相关的设置,包括 data_dir
- 允许使用 SQL 命令
- 普通模式 允许您在配置文件中定义数据模式,即提供声明式的模式管理。这在以下三种情况下有意义:
- 当您只处理普通表时
- 或者当您的数据模式非常稳定且不需要复制(复制仅在 RT 模式下可用)
- 当您需要使数据模式可移植(例如,便于在新服务器上部署)
您不能同时使用两种模式,需要通过在配置文件中指定 data_dir 来决定使用哪种模式(这是默认行为)。如果不确定,我们的建议是使用 RT 模式,因为即使您需要普通表,也可以通过单独的普通表配置构建它,并导入到您的主 Manticore 实例。
实时表可以在 RT 和普通模式下使用。在 RT 模式下,实时表通过 CREATE TABLE 命令定义,而在普通模式下则在配置文件中定义。普通(离线)表仅支持普通模式。普通表不能在 RT 模式下创建,但在普通模式下创建的现有普通表可以转换为实时表,并在 RT 模式下导入。
Manticore 提供多种方式和接口来管理您的模式和数据,但主要有两种:
- SQL。这是 Manticore 的原生语言,支持所有 Manticore 功能。最佳实践是使用 SQL 来:
- 管理您的模式和执行其他数据库管理员操作,因为这是最简单的方式
- 设计查询,因为 SQL 比 JSON DSL 更接近自然语言,这在设计新内容时很重要。您可以通过任何 MySQL 客户端或 /sql 使用 Manticore SQL。
- JSON。大部分功能也可通过 JSON 领域特定语言实现。这在将 Manticore 集成到您的应用程序时尤其有用,因为使用 JSON 可以比 SQL 更程序化地实现。最佳实践是先了解如何通过 SQL 实现某功能,然后用 JSON 将其集成到您的应用程序中。
- RHEL, Centos, Alma, Amazon, Oracle
- Debian, Ubuntu, Mint
- MacOS
- Windows
- Docker
- Kubernetes
sudo yum install https://repo.manticoresearch.com/manticore-repo.noarch.rpm
sudo yum install manticore manticore-extra如果您是从旧版本升级,建议先删除旧的软件包,以避免因软件包结构更新而导致的冲突:
sudo yum --setopt=tsflags=noscripts remove manticore*这不会删除您的数据。如果您对配置文件进行了修改,修改内容将保存到 /etc/manticoresearch/manticore.conf.rpmsave。
如果您需要单独的软件包,请在这里查找。
有关安装的更多详细信息,请参见下文。
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如果您是从旧版本升级到 Manticore 6,建议先删除旧的软件包,以避免因软件包结构更新而导致的冲突:
sudo apt remove manticore*这不会删除您的数据或配置文件。
如果您需要单独的软件包,请在这里查找。
有关安装的更多详细信息,请参见下文。
brew install manticoresoftware/tap/manticoresearch manticoresoftware/tap/manticore-extra请在下文查找有关安装的更多详细信息。
- 下载 Manticore Search 安装程序 并运行。按照安装说明操作。
- 选择安装目录。
- 选择您想安装的组件。我们建议安装所有组件。
- Manticore 附带预配置的
manticore.conf文件,采用RT 模式。无需额外配置。
有关安装的更多详细信息,请参见下文。
用于沙箱的一行命令(不建议用于生产环境):
docker run --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这会运行 Manticore 容器并等待其启动。启动后,它会启动一个 MySQL 客户端会话。当您退出 MySQL 客户端时,Manticore 容器停止运行并被删除,不会留下任何存储数据。有关如何在生产环境中使用 Manticore 的详细信息,请参见以下部分。
用于生产环境:
docker run --name manticore -v $(pwd)/data:/var/lib/manticore -p 127.0.0.1:9306:9306 -p 127.0.0.1:9308:9308 -d manticoresearch/manticore此设置将启用 Manticore 列存库和 Manticore Buddy,并在端口 9306(MySQL 连接)和 9308(所有其他连接)上运行 Manticore,使用 ./data/ 作为指定的数据目录。
有关生产环境使用的更多信息,请参见文档。
helm repo add manticoresearch https://helm.manticoresearch.com
# Update values.yaml if needed
helm install manticore -n manticore --create-namespace manticoresearch/manticoresearch您可以在文档中找到有关安装 Helm chart 的更多信息。
Manticore Search 的 Docker 镜像可在 Docker Hub 上公开获取,镜像由 Manticore Search docker GitHub 仓库 构建。
要获取 Manticore 镜像,请运行以下命令:
docker pull manticoresearch/manticore
有关在 Docker 中使用 Manticore 的更多信息,请参见 在 Docker 中使用 Manticore 部分。
- CentOS 8,RHEL 8,Oracle Linux 8,CentOS Stream 8
- Amazon Linux 2
- CentOS 9,RHEL 9,AlmaLinux 9
- AlmaLinux 10,其他基于 RHEL 10 的发行版
在 RedHat/CentOS 上安装 Manticore 最简单的方法是使用我们的 YUM 仓库:
安装仓库:
sudo yum install https://repo.manticoresearch.com/manticore-repo.noarch.rpm
然后安装 Manticore Search:
sudo yum install manticore manticore-extra
如果您是从旧版本升级到 Manticore 6,建议先删除旧的软件包,以避免因软件包结构更新而导致的冲突:
sudo yum remove manticore*
这不会删除您的数据和配置文件。
如果您更喜欢“Nightly”(开发)版本,请执行:
sudo yum -y install https://repo.manticoresearch.com/manticore-repo.noarch.rpm && \
sudo yum -y --enablerepo manticore-dev install manticore manticore-extra manticore-common manticore-server manticore-server-core manticore-tools manticore-executor manticore-buddy manticore-backup manticore-columnar-lib manticore-server-core-debuginfo manticore-tools-debuginfo manticore-columnar-lib-debuginfo manticore-icudata manticore-galera manticore-galera-debuginfo manticore-language-packs manticore-load
要从 Manticore 仓库下载独立的 RPM 文件,请按照 https://manticoresearch.com/install/ 上的说明操作。
如果您计划使用 indexer 从外部源创建表,您需要确保已安装相应的客户端库,以便能够使用您想要的索引源。下面的命令将一次性安装所有这些库;您可以按需使用,也可以只安装您需要的库(仅针对 mysql 源 - 只需 mysql-libs 即可,unixODBC 并非必需)。
sudo yum install mysql-libs postgresql-libs expat unixODBC
在 CentOS Stream 8 中,如果尝试从 MySQL 构建普通表时出现错误 sql_connect: MySQL source wasn't initialized. Wrong name in dlopen?,您可能需要运行:
dnf install mariadb-connector-c
词形还原器需要 Python 3.9 及以上版本。请确保已安装并且配置时启用了 --enable-shared。
以下是在 Centos 8 中安装 Python 3.9 和乌克兰语词形还原器的方法:
yum -y install https://repo.manticoresearch.com/manticore-repo.noarch.rpm
yum -y install manticore manticore-lemmatizer-uk
# install packages needed for building Python
yum groupinstall "Development Tools" -y
yum install openssl-devel libffi-devel bzip2-devel wget -y
# download, build and install Python 3.9
cd ~
wget https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz
tar xvf Python-3.9.2.tgz
cd Python-3.9*/
./configure --enable-optimizations --enable-shared
make -j8 altinstall
# update linker cache
ldconfig
# install pymorphy2 and UK dictionary
pip3.9 install pymorphy2[fast]
pip3.9 install pymorphy2-dicts-uk
pip3.9 install pymorphy2-dicts-uk