CommuniGate Pro
+7 (499) 271-31-54 обратный звонок

Индексированный полнотекстовый поиск



Операционная система
CPU
http
Linux
x86
File
Linux
x86-64
File
FreeBSD12
x86-64
File
FreeBSD13
x86-64
File


Полный список имеющихся пакетов и их версий доступен по ссылке.

MMIndex - это приложение для индексации и поиска почтовых писем, разработанное для использования с сервером CommuniGate Pro. Индексация и поиск могут быть настроены с использованием модуля CGIndex (собственная разработка) или FTS3 (SQLite). MMIndex использует протокол XIMSS для связи с CommuniGate Pro и поддерживает кластерную конфигурацию.

Поиск интегрирован в скины Samoware и Crystal.

Порядок установки и настройки приложения следующий:

1) скопировать файлы "mmindex-helper" и "mmindex.cfg" в базовую директорию CGPro (для кластера - на каждом члене кластера):

  cp mmindex-helper /var/CommuniGate/
  cp mmindex.cfg /var/CommuniGate/

2) задать пароль пользователя postmaster, список доменов и пользователей для индексации почты в файле "/var/CommuniGate/mmindex.cfg"; если требуется индексировать всю почту на сервере, закомментировать строки со списком доменов и пользователей;

3) в интерфейсе администратора CGPro добавить Application Helper со следующими параметрами (для кластера - на каждом члене кластера):

  Log Level -> "All Info"
  Time-Out -> "5 min"
  Auto-Restart -> "Never"
  Name (поле ввода возле выпадающего меню включено/выключено) -> "mmindex-helper"
  Program Path -> "./mmindex-helper" ("./mmindex-helper --ClusterFrontend" для фронтендов кластера)

В файле конфигурации утилиты доступны следующие параметры:

   - method: метод аутентификации на сервере CGPro, поддерживаются методы PLAIN и CRAM-MD5;

   - indexdir: директория файлового хранилища пользователя, в которой хранятся файлы индексов, задаётся относительно директории пользователя в хранилище данных;

   - basedir: базовая директория сервера CGPro;

   - loglevel: уровень детализации логов утилиты;

   - indextype: тип используемого механизма индексации, поддерживаются типы cgindex и sqlite;

   - indexperiod: минимальное значение периода индексации почты, реальное значение периода может быть больше в зависимости от обстоятельств (первое выполнение индексации может занимать значительное время, при поступлении большого объёма данных почты или значительной нагрузке на сервер период индексации также иметь большее значение), задаётся в секундах;

   - owInvalidIndex: значение параметра "yes" указывает на необходимость пересоздания файла индекса почтовой папки, если утилита не может распознать формат текущего файла;

   - fuzzyByDefault: значение параметра "yes" указывает на необходимость использования нечёткого поиска по умолчанию для всех слов, указанных в поисковом запросе, параметр используется только для типа индекса cgindex;

   - indexOnDemand: значение параметра "yes" указывает на необходимость индексации только тех пользователей, у которых имеется кастомная настройка UseMMIndex со значением "YES", разрешающая пользователю использовать индексированный поиск, а также преференс UseMMIndex со значением "YES" (устанавливается автоматически при использовании поиска в веб-интерфейсе Samoware или Crystal);

   - ignoremailboxlist: список названий почтовых папок, которые необходимо игнорировать в процессе индексирования, поддерживаются маски названий (например, по маске junk* будут проигнорированы почтовые папки с названиями Junk, junk, junk-spam, junk/subfolder и т.п.).

При использовании типа индекса cgindex допускается использование следующих специальных символов:

  * - любое окончание слова (например, по запросу "раздел*" будут найдены письма, в которых встречаются слова "разделы", "разделить" и т.д.).

При использовании типа индекса sqlite в поисковых запросах кроме указанного выше символа * можно использовать также следующие специальные символы:

  ^ - слово расположено в начале строки (например, по запросу "^договор" будут найдены письма, которые начинаются со слова "договор");
  "" - точное совпадение фразы (например, "договор раздел", в случае, когда двойные кавычки не используются, будут найдены письма, в которых между словами "договор" и "раздел" могут находится другие слова);
  - - слово не встречается (например, по запросу "договор -раздел" будут найдены письма, в которых встречается "договор", но не встречается "раздел").

Также при использовании типа индекса sqlite специальные символы в запросах можно комбинировать, например:

  ^договор* -раздел

Логи индексации и поиска сохраняются в папке SystemLogs в базовой директории CGPro, их можно просматривать в веб-админ интерфейсе таким же образом, как и логи сервера CGPro.