О новом режиме реального времени

Здравствуйте!

В 3.3.0 мы представили новый режим демона. Мы называем его режим реального времени (RT режим). Он позволяет управлять вашими индексами (таблицами) с помощью CREATE TABLE и DROP TABLE. Обычный режим, который предполагает определение схем индексов в конфигурационном файле, также остается поддерживаемым.

До этого вы могли вставлять и удалять данные из индекса реального времени, но не было возможности добавлять и удалять индексы через SQL/HTTP.

Новый режим включается путем указания data_dir в конфигурационном файле. Обратите внимание, что конфигурационный файл используется только для настроек демона, секции source или index не допускаются в этом режиме.
ALTER TABLE теперь можно использовать для изменения настроек индекса, например

ALTER TABLE products ignore_chars='.'

Однако эти новые настройки затрагивают только вновь вставленные документы; они не влияют на существующие документы в индексе.

data_dir


data_dir указывает директорию, в которой будут храниться все новые индексы. Каждый индекс хранится в своей отдельной папке внутри data_dir. Вы не должны вручную добавлять индексы в эту папку, потому что индексы, созданные демоном, работающим в новом RT режиме, отличаются внутренне от индексов, созданных в обычном режиме. Используйте IMPORT TABLE для импорта старых индексов. Он копирует файлы индексов в новую папку внутри data_dir и выполняет необходимые изменения формата индекса.
Смотрите ниже для получения более подробной информации о различиях индексов.
RT режим работает только с RT или PQ индексами. Вы не можете создавать или импортировать обычные индексы в демон, работающий в этом режиме. Одно из возможных решений - использовать ATTACH , чтобы добавить обычный индекс к RT индексу (в демоне, работающем в старом режиме), а затем использовать IMPORT TABLE для импорта этого RT индекса в демон, работающий в RT режиме.

Как сделать резервную копию


Поскольку вы не должны вручную манипулировать содержимым data_dir, единственный безопасный способ (на данный момент) сделать резервную копию или переместить data_dir в другое место - это остановить демон, скопировать/переместить data_dir и перезапустить демон.

Репликация


Поскольку репликация создает/удаляет индексы на узлах, она работает только с демоном, работающим в новом RT режиме.

Внешние файлы


В CREATE TABLE и ALTER TABLE допускаются только абсолютные пути для внешних файлов (формы слов, стоп-слова, исключения). Это сделано для избежания путаницы, поскольку относительные пути зависят от папки, в которой был запущен демон, и пользователь может этого не знать.

Детали реализации


data_dir содержит индексы и .json файл, который перечисляет эти индексы и некоторые их свойства. Этот файл изменяется демоном, вы не должны изменять его вручную.

Все пути внутри .json конфигурации являются относительными. Идея заключается в том, что вы можете скопировать/переместить data_dir на новый узел/местоположение, изменить data_dir в конфигурационном файле и запустить демон из нового местоположения без каких-либо дополнительных изменений.

Существуют также различия в формате индекса (между индексами, созданными в RT режиме и обычном режиме), которые служат той же цели. Индексы, созданные в старом режиме, хранят полные пути к внешним файлам. Индексы, созданные в RT режиме, хранят только имена файлов, путь генерируется динамически на основе имени индекса и значения data_dir в конфигурации.

Существует заметная разница в том, как демон работает с внешними файлами (формы слов, файлы исключений или стоп-слов) при работе в RT режиме. До введения RT режима индексы либо встраивали внешние файлы в заголовок индекса, либо использовали их из места, где они хранятся (в зависимости от настроек). Теперь, когда Manticore работает в RT режиме, встраивание отключено. Например, при выполнении

CREATE TABLE (title text) wordforms ='/path/to/wordforms.txt'

формы слов, стоп-слова и исключения копируются в папку индекса внутри data_dir.
IMPORT TABLE по сути делает то же самое. Он копирует внешние файлы в папку индекса внутри data_dir. Это может привести к дублированию файлов, если одни и те же внешние файлы используются при создании нескольких индексов. Однако это не обязательно означает дополнительное использование ОЗУ демоном. Например, searchd загружает только один экземпляр файла форм слов, если есть несколько индексов, которые используют копии одного и того же оригинального файла форм слов.

Если у вас есть какие-либо вопросы о новом режиме, не стесняйтесь задавать их в:

Или исследуйте его самостоятельно в нашем интерактивном курсе " Manticoresearch - RT mode - управление индексами ".

Установить Manticore Search

Установить Manticore Search