Руководство организовано так, чтобы отразить наиболее вероятный способ использования 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 для:
- управления схемами и выполнения других DBA-операций, так как это самый простой способ сделать это
- проектирования запросов, так как SQL гораздо ближе к естественному языку, чем JSON DSL, что важно при разработке чего-то нового. Вы можете использовать Manticore SQL через любой MySQL клиент или /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 Columnar Library и Manticore Buddy, а также запустит Manticore на портах 9306 для MySQL соединений и 9308 для всех остальных, используя ./data/ в качестве директории для данных.
Подробнее о работе в продакшене читайте в документации.
helm repo add manticoresearch https://helm.manticoresearch.com
# Update values.yaml if needed
helm install manticore -n manticore --create-namespace manticoresearch/manticoresearchБольше информации об установке Helm чарта вы можете найти в документации.
Docker-образы Manticore Search доступны публично на Docker Hub, собраны из репозитория Manticore Search docker на GitHub.
Чтобы получить образ Manticore, выполните следующую команду:
docker pull manticoresearch/manticore
Для получения дополнительной информации об использовании Manticore в Docker смотрите раздел Использование Manticore в Docker.
- CentOS 8, RHEL 8, Oracle Linux 8, CentOS Stream 8
- Amazon Linux 2
- CentOS 9, RHEL 9, AlmaLinux 9
- AlmaLinux 10, другие дистрибутивы на базе RHEL 10
Самый простой способ установить Manticore на RedHat/CentOS — использовать наш репозиторий 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
Чтобы скачать отдельные RPM-файлы из репозитория Manticore, следуйте инструкциям на https://manticoresearch.com/install/.
Если вы планируете использовать indexer для создания таблиц из внешних источников, необходимо убедиться, что установлены соответствующие клиентские библиотеки для обеспечения поддержки нужных вам источников индексации. В строке ниже они устанавливаются все сразу; вы можете использовать её как есть или сократить установку, оставив только необходимые библиотеки (для MySQL-источников достаточно только mysql-libs, unixODBC не обязателен).
sudo yum install mysql-libs postgresql-libs expat unixODBC
В CentOS Stream 8 вам может понадобиться выполнить:
dnf install mariadb-connector-c
если при сборке plain-таблицы из MySQL вы получаете ошибку sql_connect: MySQL source wasn't initialized. Wrong name in dlopen?.
Лемматизатор требует Python 3.9+. Убедитесь, что он установлен и сконфигурирован с опцией --enable-shared.
Вот как установить Python 3.9 и украинский лемматизатор в Centos 8:
# install Manticore Search and UK lemmatizer from YUM repository
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