RHEL, Centos, Alma, Amazon, Oracle 系统安装

  1. sudo yum install https://repo.manticoresearch.com/manticore-repo.noarch.rpm
  2. sudo yum install manticore manticore-extra

如果你正在从旧版本升级,建议先删除旧的包,以避免由于更新后的包结构引起的冲突。

sudo yum --setopt=tsflags=noscripts remove manticore*

这不会删除你的数据。如果你对配置文件进行了更改,它将被保存到 /etc/manticoresearch/manticore.conf.rpmsave

如果你正在寻找单独的软件包,请在这里找到它们

有关安装的更多详细信息,请参见以下内容

Debian, Ubuntu, Mint 系统

  1. wget https://repo.manticoresearch.com/manticore-repo.noarch.deb
  2. sudo dpkg -i manticore-repo.noarch.deb
  3. sudo apt update
  4. sudo apt install manticore manticore-extra

MacOS 系统安装

  1. brew install manticoresoftware/tap/manticoresearch manticoresoftware/tap/manticore-extra

windows 安装

  • 下载 Manticore Search 安装程序 并运行它。按照安装说明进行操作。
  • 选择要安装到的目录。
  • 选择要安装的组件。我们建议安装所有组件。
  • Manticore带有一个在RT模式下预配置的manticore.conf文件。不需要额外的配置。

Docker 安装

用于沙盒环境的一行命令(不建议用于生产环境):

  1. 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

这条命令运行Manticore容器并等待其启动。启动后,它启动一个MySQL客户端会话。当你退出MySQL客户端时,Manticore容器停止运行并被删除,不会留下任何存储的数据。有关如何在实际生产环境中使用Manticore的详细信息,请参考以下部分。

用于生产环境:

  1. docker run -e EXTRA=1 --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,并使用./data/作为指定的数据目录,在端口 9306 上运行 Manticore 以进行 MySQL 连接,以及在端口 9308 上运行Manticore 以进行其他所有连接。

用 Docker image 来安装 Manticore Search

Manticore Search 的 Docker 镜像可以在 Docker Hub 上公开访问,从 Manticore Search 的 docker GitHub 存储库构建而成。

要获取 Manticore 镜像,请运行以下命令:

  1. docker pull manticoresearch/manticore

有关在Docker中使用 Manticore 的更多信息,请参见“在Docker中使用Manticore”部分。

在 RedHat 和 CentOS 上安装 Manticore 软件包

支持的发行版本:

  • CentOS 7、RHEL 7、Oracle Linux 7
  • CentOS 8、RHEL 8、Oracle Linux 8、CentOS Stream 8
  • Amazon Linux 2
  • CentOS 9、RHEL 9、AlmaLinux 9

使用我们的YUM仓库是在RedHat/CentOS上安装Manticore的最简单方法:

安装仓库:

  1. sudo yum install https://repo.manticoresearch.com/manticore-repo.noarch.rpm

然后安装Manticore Search:

  1. sudo yum install manticore manticore-extra

如果你从旧版本升级到Manticore 6,建议首先删除旧的软件包,以避免由于更新后的包结构引起的冲突:

  1. sudo yum remove manticore*

这不会删除你的数据和配置文件。

开发包

如果你更喜欢使用“Nightly”(开发)版本,执行以下命令:

  1. sudo yum -y install https://repo.manticoresearch.com/manticore-repo.noarch.rpm && \
  2. 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

独立的 RPM 软件包

要从Manticore存储库下载独立的RPM文件,请按照 https://manticoresearch.com/install/ 上的说明进行操作。

可能需要的其他软件包

对于索引器

如果计划使用索引器从外部源创建表,你需要确保已安装相应的客户端库,以便使用你想要的索引源。下面的命令将一次性安装所有这些库;可以按原样使用,或者将其缩小为仅安装你需要的库(对于仅使用mysql源,只需安装mysql-libs即可,不需要unixODBC)。

  1. sudo yum install mysql-libs postgresql-libs expat unixODBC

在 CentOS Stream 8 上,如果出现错误 sql_connect: MySQL source wasn't initialized. Wrong name in dlopen? trying to build a plain table from MySQL,可能需要运行:

  1. dnf install mariadb-connector-c

乌克兰词形还原器

词形还原器需要Python 3.9+。确保已安装它,并使用 --enable-shared 进行配置。

以下是在CentOS 7/8中安装Python 3.9和乌克兰词形还原器的方法:

  1. # 从YUM仓库安装Manticore Search和UK词形还原器
  2. yum -y install https://repo.manticoresearch.com/manticore-repo.noarch.rpm
  3. yum -y install manticore manticore-lemmatizer-uk
  4. # 安装构建Python所需的软件包
  5. yum groupinstall "Development Tools" -y
  6. yum install openssl-devel libffi-devel bzip2-devel wget -y
  7. # 下载、构建和安装Python 3.9
  8. cd ~
  9. wget https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz
  10. tar xvf Python-3.9.2.tgz
  11. cd Python-3.9*/
  12. ./configure --enable-optimizations --enable-shared
  13. make -j8 altinstall
  14. # 更新链接器缓存
  15. ldconfig
  16. # 安装pymorphy2和UK字典
  17. pip3.9 install pymorphy2[fast]
  18. pip3.9 install pymorphy2-dicts-uk

在 Debian 或 Ubuntu 上安装 Manticore

支持的发行版本:

Debian

  • 10.0(Buster)
  • 11.0(Bullseye)
  • 12.0(Bookworm) Ubuntu

  • 18.04(Bionic)

  • 20.04(Focal)
  • 21.04(Hirsute Hippo)
  • 22.04(Ubuntu Jammy) Mint

  • 19

  • 20

APT仓库

在Ubuntu/Debian/Mint中安装Manticore的最简单方法是使用我们的APT仓库。

安装仓库:

  1. wget https://repo.manticoresearch.com/manticore-repo.noarch.deb
  2. sudo dpkg -i manticore-repo.noarch.deb
  3. sudo apt update

(如果没有安装wget,请安装它;如果apt-key失败,请安装gnupg2)。

然后安装Manticore Search:

  1. sudo apt install manticore manticore-extra

如果你从旧版本升级到Manticore 6,建议首先删除旧的软件包,以避免由于更新后的包结构引起的冲突:

  1. sudo apt remove manticore*

这不会删除你的数据和配置文件。

开发包

如果你更喜欢使用“Nightly”(开发)版本,执行以下命令:

  1. wget https://repo.manticoresearch.com/manticore-dev-repo.noarch.deb && \
  2. sudo dpkg -i manticore-dev-repo.noarch.deb && \
  3. sudo apt -y update && \
  4. sudo apt -y 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-dbgsym manticore-tools-dbgsym manticore-columnar-lib-dbgsym manticore-icudata-65l

独立的DEB软件包

要从Manticore存储库下载独立的DEB文件,请按照 https://manticoresearch.com/install/ 上的说明进行操作。

可能需要的其他软件包

对于索引器

Manticore软件包依赖于zlib和ssl库,除此之外没有其他强制要求。然而,如果计划使用索引器从外部存储创建表,你需要安装适当的客户端库。要了解索引器需要哪些具体的库,运行索引器并查看其输出的顶部:

  1. $ sudo -u manticore indexer

这里你可以看到libodbc.so.2、libexpat.so.1、libmysqlclient.so.20和libpq.so.5的提及。

下面是一个参考表,列出了不同Debian/Ubuntu版本的所有客户端库:

发行版 MySQL PostgreSQL XMLpipe UnixODBC
Ubuntu Trusty libmysqlclient.so.18 libpq.so.5 libexpat.so.1 libodbc.so.1
Ubuntu Bionic libmysqlclient.so.20 libpq.so.5 libexpat.so.1 libodbc.so.2
Ubuntu Focal libmysqlclient.so.21 libpq.so.5 libexpat.so.1 libodbc.so.2
Ubuntu Hirsute libmysqlclient.so.21 libpq.so.5 libexpat.so.1 libodbc.so.2
Ubuntu Jammy libmysqlclient.so.21 libpq.so.5 libexpat.so.1 libodbc.so.2
Debian Jessie libmysqlclient.so.18 libpq.so.5 libexpat.so.1 libodbc.so.2
Debian Buster libmariadb.so.3 libpq.so.5 libexpat.so.1 libodbc.so.2
Debian Bullseye libmariadb.so.3 libpq.so.5 libexpat.so.1 libodbc.so.2
Debian Bookworm libmariadb.so.3 libpq.so.5 libexpat.so.1 libodbc.so.2

要查找提供这些库的软件包,你可以使用例如apt-file:

  1. apt-file find libmysqlclient.so.20

libmysqlclient20: /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20 libmysqlclient20: /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20.2.0 libmysqlclient20: /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20.3.6

请注意,你只需要为你打算使用的存储类型安装库。因此,如果你计划仅从MySQL构建表,那么可能只需要安装MySQL库(在上述情况下是libmysqlclient20)。

最后,安装所需的软件包:

  1. sudo apt-get install libmysqlclient20 libodbc1 libpq5 libexpat1

如果你根本不打算使用索引器工具,就不需要查找和安装任何库。

要启用CJK分词支持,官方软件包包含带有嵌入ICU库和包含ICU数据文件的二进制文件。它们独立于系统上可能存在的任何ICU运行时库,无法升级。

乌克兰词形还原器

词形还原器需要Python 3.9+。确保已安装它,并使用 --enable-shared 进行配置。

以下是在Debian和Ubuntu上安装Python 3.9和乌克兰词形还原器的方法:

  1. # install Manticore Search and UK lemmatizer from APT repository
  2. cd ~
  3. wget https://repo.manticoresearch.com/manticore-repo.noarch.deb
  4. sudo dpkg -i manticore-repo.noarch.deb
  5. sudo apt -y update
  6. sudo apt -y install manticore manticore-lemmatizer-uk
  7. # install packages needed for building Python
  8. sudo apt -y update
  9. sudo apt -y install wget build-essential libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev
  10. # download, build and install Python 3.9
  11. cd ~
  12. wget https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tgz
  13. tar xzf Python-3.9.4.tgz
  14. cd Python-3.9.4
  15. ./configure --enable-optimizations --enable-shared
  16. sudo make -j8 altinstall
  17. # update linker cache
  18. sudo ldconfig
  19. # install pymorphy2 and UK dictionary
  20. sudo pip3.9 install pymorphy2[fast]
  21. sudo pip3.9 install pymorphy2-dicts-uk

在 MacOS 上安装 Manticore

通过 Homebrew 软件包管理器:

  1. brew install manticoresoftware/tap/manticoresearch manticoresoftware/tap/manticore-extra

启动Manticore作为brew服务:

  1. brew services start manticoresearch

Manticore的默认配置文件位于 /usr/local/etc/manticoresearch/manticore.conf/opt/homebrew/etc/manticoresearch/manticore.conf

如果计划使用索引器从MySQL、PostgreSQL或其他使用ODBC的数据库等源中获取数据,可能需要额外的库,如mysql@5.7、libpq和unixodbc。

开发包

如果更喜欢使用“Nightly”(开发)版本,执行以下命令:

  1. brew tap manticoresoftware/tap-dev
  2. brew install manticoresoftware/tap-dev/manticoresearch-dev manticoresoftware/tap-dev/manticore-extra-dev
  3. brew services start manticoresearch-dev

在 Windows 上安装 Manticore

  1. 下载Manticore Search安装程序并运行它。按照安装说明进行操作。
  2. 选择要安装到的目录。
  3. 选择要安装的组件。我们建议安装所有组件。
  4. Manticore带有一个在RT模式下预配置的manticore.conf文件。不需要额外的配置。

安装为 Windows 服务

要将searchd(Manticore Search服务器)安装为Windows服务,请运行以下命令:

  1. \path\to\searchd.exe --install --config \path\to\config --servicename Manticore

确保使用完整路径指定配置文件,否则当作为服务启动时,searchd.exe将无法找到它。

安装完成后,可以从Microsoft Management Console的Services管理器中启动该服务。

一旦启动,你可以使用MySQL命令行界面访问Manticore:

  1. mysql -P9306 -h127.0.0.1

请注意,在本手册的大多数示例中,我们使用 -h0 来连接到本地主机,但在Windows中,你必须明确使用 localhost 或 127.0.0.1。

从源码编译 Manticore

编译 Manticore 源代码允许自定义构建配置,比如禁用某些功能或添加新的补丁进行测试。例如,你可能想要从源代码编译并禁用嵌入式 ICU,以便使用安装在你系统上的可以独立升级的不同版本。如果你有兴趣为 Manticore Search 项目做贡献,这也是有用的。

以下是从源代码编译Manticore的基本步骤:

  1. 获取源代码:

    1. git clone https://github.com/manticoresoftware/manticoresearch.git
  2. 进入源代码目录:

    1. cd manticoresearch
  3. 安装构建所需的依赖: 具体依赖可能因系统而异,但通常会涉及到构建工具和库。例如,在Debian/Ubuntu上,你可能需要执行:

    1. sudo apt-get install build-essential
  4. 配置构建:

    1. cmake .

    这将使用默认配置。如果你有特殊的构建需求,可以使用cmake的各种选项进行配置。

  5. 进行构建:

    1. make

    这将编译Manticore。如果你有多个核心可以并行编译,可以使用make -jN,其中N是核心数量。

  6. 安装:

    1. sudo make install

    这将安装Manticore到系统中。

  7. 运行Manticore: 现在,你可以使用searchd运行Manticore。例如:

    1. searchd

请注意,这只是一个基本的示例。具体的步骤可能因你的操作系统和系统配置而异。确保查阅Manticore的文档以获取详细的指导。

使用CI Docker构建

为了准备官方的发布和开发包,我们使用Docker和一个特殊的构建镜像。该镜像包含必要的工具,并设计用于与外部sysroots一起使用,因此一个容器可以为所有操作系统构建软件包。你可以使用Dockerfile和README构建镜像,或者使用Docker Hub上的镜像。这是创建任何支持的操作系统和架构的二进制文件的最简单方法。在运行容器时,你还需要指定以下环境变量:

使用CI yaml文件作为参考,查找可能需要使用的其他环境变量 - https://github.com/manticoresoftware/manticoresearch/blob/master/dist/gitlab-release.yml

要找到DISTRarch的可能值,你可以使用 https://repo.manticoresearch.com/repository/sysroots/roots_with_zstd/ 目录作为参考,因为它包含了所有支持的组合的sysroots。

然后,在Docker容器中构建软件包就像调用以下命令一样简单:

  1. cmake -DPACK=1 /path/to/sources
  2. cmake --build .

例如,要创建与官方RedHat 7软件包相同的软件包,但没有嵌入的ICU和其大型数据文件,你可以执行以下操作(假设源代码放在主机上的 /manticore/sources/ 中):

  1. docker run -it --rm -e SYSROOT_URL=https://repo.manticoresearch.com/repository/sysroots \
  2. -e arch=x86_64 \
  3. -e DISTR=rhel7 \
  4. -e boost=boost_rhel_feb17 \
  5. -e sysroot=roots_nov22 \
  6. -v /manticore/sources:/manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \
  7. manticoresearch/external_toolchain:clang15_cmake3263 bash

接下来需要在Docker shell中运行以下命令:

  1. cd /manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/
  2. RELEASE_TAG="noicu"
  3. mkdir build && cd build
  4. cmake -DPACK=1 -DBUILD_TAG=$RELEASE_TAG -DWITH_ICU_FORCE_STATIC=0 ..
  5. cmake --build . --target package

长路径是必需的,否则可能构建源代码失败。

相同的过程可以用于构建二进制文件/软件包,不仅适用于流行的Linux发行版,还适用于FreeBSD、Windows和macOS。