Руководство организовано так, чтобы отразить наиболее вероятный способ использования 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
curl https://manticoresearch.com | shЕсли вы ищете отдельные пакеты, вы можете найти их здесь.
Подробнее об установке в Linux на базе RPM см. здесь.
Подробнее об установке в Linux на базе DEBIAN см. здесь.
Подробнее об установке в macOS см. ниже.
Подробнее о быстром установщике выполните
curl https://manticoresearch.com | sh -s help- Загрузите Установщик 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
curl https://manticoresearch.com | sh
Если вы предпочитаете версии "Nightly" (для разработки), выполните:
curl https://manticoresearch.com | sh -s dev
Самый простой способ установить Manticore на RedHat/CentOS — использовать наш репозиторий YUM:
Установите репозиторий:
sudo yum install https://repo.manticoresearch.com/manticore-repo.noarch.rpm
Затем установите Manticore Search:
sudo yum install manticore
Если вы обновляетесь до Manticore 6 или новее с более старой версии, рекомендуется сначала удалить старые пакеты, чтобы избежать конфликтов, вызванных обновлённой структурой пакетов:
sudo yum remove manticore*
Это не удалит ваши данные и файл конфигурации.
Если вы предпочитаете "Ночные" (разрабатываемые) версии, выполните:
sudo yum -y install https://repo.manticoresearch.com/manticore-dev-repo.noarch.rpm && \
sudo yum -y install manticore
Чтобы скачать автономные 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
если вы получаете ошибку sql_connect: MySQL source wasn't initialized. Wrong name in dlopen? при попытке построить обычную таблицу из MySQL.