Запуск Manticore вручную

Вы также можете запустить Manticore Search, вызвав searchd (исполняемый файл сервера Manticore Search) напрямую:

searchd [OPTIONS]

Обратите внимание, что без указания пути к файлу конфигурации searchd попытается найти его в нескольких местах в зависимости от операционной системы.

Опции командной строки searchd

Опции, доступные для searchd во всех операционных системах:

  • --help (-h для краткости) выводит список всех параметров, которые можно использовать в вашей конкретной сборке searchd.

  • --version (-v для краткости) показывает информацию о версии Manticore Search.

  • --config <file> (-c <file> для краткости) указывает searchd использовать указанный файл в качестве конфигурации.

  • --stop используется для асинхронной остановки searchd, используя данные из файла PID, указанного в конфигурационном файле Manticore. Поэтому вам также может понадобиться указать searchd, какой конфигурационный файл использовать с помощью опции --config. Пример:

    $ searchd --config /etc/manticoresearch/manticore.conf --stop
  • --stopwait используется для синхронной остановки searchd. --stop по сути сообщает запущенному экземпляру выйти (отправляя ему SIGTERM) и сразу возвращается. --stopwait также попытается дождаться, пока запущенный экземпляр searchd действительно завершит остановку (например, сохранит все ожидающие изменения атрибутов) и выйдет. Пример:

    $ searchd --config /etc/manticoresearch/manticore.conf --stopwait

    Возможные коды выхода:

    • 0 при успешном завершении
    • 1 если не удалось подключиться к запущенному серверу searchd
    • 2 если сервер сообщил об ошибке во время остановки
    • 3 если сервер аварийно завершился во время остановки
  • Команда --status используется для запроса статуса запущенного экземпляра searchd с использованием данных подключения из (опционально) предоставленного конфигурационного файла. Она попытается подключиться к запущенному экземпляру, используя первый найденный UNIX-сокет или TCP-порт из конфигурационного файла. При успехе она запросит ряд значений счетчиков статуса и производительности и выведет их. Вы также можете использовать команду SHOW STATUS для доступа к тем же счетчикам через SQL-протокол. Примеры:

    $ searchd --status
    $ searchd --config /etc/manticoresearch/manticore.conf --status
  • --pidfile используется для явного принудительного использования файла PID (где хранится идентификационный номер процесса searchd), несмотря на любые другие опции отладки, которые говорят обратное (например, --console). Это опция для отладки.

    $ searchd --console --pidfile
  • --console используется для принудительного запуска searchd в консольном режиме. Обычно Manticore работает как обычное серверное приложение и записывает информацию в лог-файлы (как указано в конфигурационном файле). Однако при отладке проблем с конфигурацией или самим сервером, или при попытке диагностировать трудноуловимые проблемы, может быть удобнее заставить его выводить информацию напрямую в консоль/командную строку, из которой он вызывается. Запуск в консольном режиме также означает, что процесс не будет форкаться (поиск будет выполняться последовательно), и логи не будут записываться в файлы. (Следует отметить, что консольный режим не является предназначенным способом запуска searchd.) Вы можете вызвать его так:

    $ searchd --config /etc/manticoresearch/manticore.conf --console
  • Опции --logdebug, --logreplication, --logdebugv и --logdebugvv включают дополнительный отладочный вывод в лог сервера. Они отличаются уровнем подробности логирования. Это опции для отладки и обычно не должны быть включены, так как могут сильно засорять лог. Их можно временно использовать по запросу для помощи в сложных сессиях отладки.

  • --iostats используется вместе с опциями логирования (должен быть активирован query_log в manticore.conf), чтобы предоставить более подробную информацию по каждой операции ввода/вывода, выполненной в ходе запроса, с небольшим снижением производительности и увеличением размера логов. Статистика ввода/вывода не включает информацию о операциях ввода/вывода для атрибутов, так как они загружаются с помощью mmap. Для включения можно запустить searchd так:

    $ searchd --config /etc/manticoresearch/manticore.conf --iostats
  • --cpustats используется для предоставления отчета о фактическом времени работы CPU (в дополнение к реальному времени) как в файле журнала запросов (для каждого запроса), так и в отчете о статусе (агрегированном). Зависит от системного вызова Linux clock_gettime() или использует менее точный вызов на некоторых системах. Вы можете запустить searchd так:

    $ searchd --config /etc/manticoresearch/manticore.conf --cpustats
  • --port portnumber (-p для краткости) используется для указания порта, на котором Manticore должен слушать запросы бинарного протокола, обычно для целей отладки. Обычно по умолчанию используется 9312, но иногда нужно запустить на другом порту. Указание на командной строке переопределит значение из конфигурационного файла. Допустимый диапазон — от 0 до 65535, но порты с номерами 1024 и ниже обычно требуют привилегированного аккаунта для запуска.

    Пример использования:

    $ searchd --port 9313
  • --listen ( address ":" port | port | path ) [ ":" protocol ] (или -l для краткости) работает как --port, но позволяет указать не только порт, но полный путь, IP-адрес и порт, или путь Unix-доменного сокета, на котором searchd будет слушать. Другими словами, вы можете указать либо IP-адрес (или имя хоста) и номер порта, только номер порта, либо путь Unix-сокета. Если указан только номер порта без адреса, searchd будет слушать на всех сетевых интерфейсах. Путь Unix определяется ведущим слэшем. В качестве последнего параметра можно также указать обработчик протокола (listener), который будет использоваться для подключений на этом сокете. Поддерживаемые значения протокола: 'sphinx' и 'mysql' (протокол MySQL, используемый с версии 4.1).

  • --force-preread запрещает серверу обслуживать любые входящие подключения до завершения предварительной загрузки файлов таблиц. По умолчанию при запуске сервер принимает подключения, пока файлы таблиц лениво загружаются в память. Эта опция расширяет поведение и заставляет ждать, пока файлы не будут загружены.

  • --index (--table) <table> (или -i (-t) <table> для краткости) заставляет этот экземпляр searchd обслуживать только указанную таблицу. Как и --port выше, это обычно используется для отладки; более долгосрочные изменения обычно применяются непосредственно в конфигурационном файле.

  • --strip-path удаляет пути из всех имен файлов, на которые ссылается таблица (стоп-слова, словоформы, исключения и т.д.). Это полезно для использования таблиц, созданных на другой машине с возможно другой структурой путей.

  • --replay-flags=<OPTIONS> переключатель можно использовать для указания списка дополнительных опций воспроизведения бинарного лога. Поддерживаемые опции:

    • accept-desc-timestamp, игнорировать убывающие временные метки транзакций и воспроизводить такие транзакции в любом случае (поведение по умолчанию — завершение с ошибкой).
    • ignore-open-errors, игнорировать отсутствующие файлы binlog (поведение по умолчанию — завершение с ошибкой).
    • ignore-trx-errors, игнорировать любые ошибки транзакций и пропускать текущий файл binlog (поведение по умолчанию — завершение с ошибкой).
    • ignore-all-errors, игнорировать любые описанные выше ошибки (поведение по умолчанию — завершение с ошибкой).

    Пример:

      $ searchd --replay-flags=accept-desc-timestamp
  • --coredump используется для включения сохранения core-файла или минидампа сервера при сбое. По умолчанию отключено для ускорения перезапуска сервера после сбоя. Полезно для целей отладки.

    $ searchd --config /etc/manticoresearch/manticore.conf --coredump
  • --new-cluster инициализирует кластер репликации и делает сервер эталонным узлом с защитой перезапуска кластера. В Linux также можно запустить manticore_new_cluster. Он запустит Manticore в режиме --new-cluster через systemd.

  • --new-cluster-force инициализирует кластер репликации и делает сервер эталонным узлом, обходя защиту перезапуска кластера. В Linux также можно запустить manticore_new_cluster --force. Он запустит Manticore в режиме --new-cluster-force через systemd.

  • --mockstack анализирует и сообщает необходимые размеры стека для рекурсивной оценки выражений, операций сопоставления с образцом и обработки фильтров. Эта опция отладки выводит рассчитанные требования к стеку в консоль для целей оптимизации. Вывод содержит переменные окружения, которые можно использовать для настройки требований к стеку для различных операций.

    Пример:

    $ searchd --mockstack
    Manticore 7.4.7 e90b5afbb@25032706 dev (columnar 4.1.2 15bbcc7@25031206) (secondary 4.1.2 15bbcc7@25031206) (knn 4.1.2 15bbcc7@25031206)
    Copyright (c) 2001-2016, Andrew Aksyonoff
    Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
    Copyright (c) 2017-2025, Manticore Software LTD (https://manticoresearch.com)
    export MANTICORE_KNOWN_CREATE_SIZE=200
    export MANTICORE_START_KNOWN_CREATE_SIZE=4504
    export MANTICORE_KNOWN_EXPR_SIZE=16
    export MANTICORE_START_KNOWN_EXPR_SIZE=200
    export MANTICORE_NONE=32
    export MANTICORE_START_NONE=104
    export MANTICORE_KNOWN_FILTER_SIZE=224
    export MANTICORE_START_KNOWN_FILTER_SIZE=11192
    export MANTICORE_KNOWN_MATCH_SIZE=320
    export MANTICORE_START_KNOWN_MATCH_SIZE=14552
    export NO_STACK_CALCULATION=1

Опции для Windows

Существуют некоторые опции для searchd, специфичные для платформ Windows, касающиеся работы как службы, и доступны только в бинарных файлах для Windows.

Обратите внимание, что в Windows searchd по умолчанию работает в режиме --console, если только вы не установите его как службу.

  • --install устанавливает searchd как службу в Microsoft Management Console (Панель управления / Администрирование / Службы). Любые другие параметры, указанные в командной строке вместе с --install, также будут частью командной строки при последующих запусках службы. Например, при вызове searchd вам, вероятно, также потребуется указать конфигурационный файл с помощью --config, и вы сделаете это вместе с --install. После вызова стандартные средства запуска/остановки станут доступны через консоль управления, так что любые методы запуска, остановки и перезапуска служб также применимы к searchd. Пример:

    C:\WINDOWS\system32> C:\Manticore\bin\searchd.exe --install
       --config C:\Manticore\manticore.conf

    Если вы хотите получать статистику ввода-вывода каждый раз при запуске searchd, необходимо указать опцию в той же строке, что и команда --install, следующим образом:

    C:\WINDOWS\system32> C:\Manticore\bin\searchd.exe --install
       --config C:\Manticore\manticore.conf --iostats
  • --delete удаляет службу из Microsoft Management Console и других мест, где регистрируются службы, после предыдущей установки с помощью --install. Обратите внимание, что это не удаляет программное обеспечение и не удаляет таблицы. Это означает, что служба не будет вызываться из системы служб и не будет запускаться при следующем старте машины. Если служба в данный момент запущена, текущий экземпляр не будет завершён (до следующей перезагрузки или до вызова --stop). Если служба была установлена с пользовательским именем (с помощью --servicename), то при удалении нужно указать то же имя с --servicename. Пример:

    C:\WINDOWS\system32> C:\Manticore\bin\searchd.exe --delete
  • --servicename <name> применяет указанное имя к searchd при установке или удалении службы, как оно будет отображаться в Консоли управления; по умолчанию это будет searchd, но если развертывание происходит на серверах, где в систему могут входить несколько администраторов, или на системе с несколькими экземплярами searchd, может быть применимо более описательное имя. Обратите внимание, что если не использовать вместе с --install или --delete, эта опция ничего не делает. Пример:

    C:\WINDOWS\system32> C:\Manticore\bin\searchd.exe --install
       --config C:\Manticore\manticore.conf --servicename ManticoreSearch
  • --ntservice — это опция, которая передается Microsoft Management Console в searchd для запуска его как службы на платформах Windows. Обычно нет необходимости вызывать это напрямую; это обычно вызывается Windows при запуске службы, хотя теоретически вы можете вызвать это как обычную службу из командной строки (в дополнение к --console).

  • --safetrace заставляет searchd использовать только системный вызов backtrace() в отчетах о сбоях. В некоторых (редких) сценариях это может быть «более безопасным» способом получения такого отчета. Это опция для отладки.

  • Переключатель --nodetach (только для Linux) указывает searchd не отсоединяться в фоновый режим. Это также приведет к выводу записей журнала в консоль. Обработка запросов работает как обычно. Это опция для отладки и может быть полезна при запуске Manticore в контейнере Docker для захвата его вывода.

Plugin dir

Manticore использует plugin_dir для хранения и использования плагинов Manticore Buddy. По умолчанию это значение доступно пользователю "manticore" в стандартной установке. Однако, если вы запускаете демон searchd вручную под другим пользователем, демон может не иметь доступа к plugin_dir. Чтобы решить эту проблему, убедитесь, что вы указали plugin_dir в общем разделе, к которому пользователь, запускающий демон searchd, имеет права на запись.

Сигналы

searchd поддерживает ряд сигналов:

  • SIGTERM — инициирует корректное завершение работы. Новые запросы обрабатываться не будут, но уже начатые запросы не будут принудительно прерваны.
  • SIGHUP — инициирует ротацию таблиц. В зависимости от значения настройки seamless_rotate новые запросы могут быть кратковременно приостановлены; клиенты получат временные ошибки.
  • SIGUSR1 — принудительно открывает заново файлы журнала searchd и журнала запросов, что позволяет выполнять ротацию файлов журнала.

Переменные окружения

  • MANTICORE_TRACK_DAEMON_SHUTDOWN=1 включает подробное логирование при завершении работы searchd. Это полезно в случае проблем с завершением работы, например, когда Manticore слишком долго завершает работу или зависает в процессе завершения.
Last modified: August 28, 2025