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

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

В 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 - index administration ” интерактивном курсе.

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

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