При полнотекстовом поиске выполняется поиск по текстовому отображению параметров объекта. Например, адреса представляются в виде названия улиц, городов. Списковые параметры - расшифрованные значения. При каждом изменении параметров индекс обновляется и предоставляет выполнять поиск как: "Ленина 5 Иванов".

search fulltext

Конфигурация

В конфигурации BGERP добавить:

fulltext:index.delay=<delay>
fulltext:entry.customer.paramIds=<paramIds>
fulltext:entry.process.paramIds=<paramIds>
fulltext:entry.message.paramIds=*

Где:

  • <delay> - задержка в секундах индексации после окончании правки объекта;

  • <paramIds> - коды параметров контрагента либо процессов, доступные для индексации, * - все параметры.

В полнотекстовый индекс помимо параметров для контрагента добавляется его наименование, для процесса - описание. Обрабатываются следующие типы параметров:

  • text, blob - значения;

  • email - значения и комментарии;

  • list, listcount, tree - наименования значений;

  • address - строка с адресом;

  • phone - телефон сплошной строкой цифр.

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

В планировщике задач добавить запуск класса FullTextUpdate один раз в минуту, либо запустить его в период тестирования.

Запуск первичной индексации

Индекс обновляется с задержкой после редактирования сущности, либо её параметров. Для инициации индексирования всех уже существующих объектов выполнить запуск ru.bgcrm.plugin.fulltext.exec.FullTextInit.

Формат запроса

По-умолчанию поиск ищет по условию логическое ИЛИ для всех введённых слов, разделённых пробелами. Для добавления слова как И необходимо сопроводить его префиксом +.

Поиск производится в режиме BOOLEAN следующим запросом:

SELECT * FROM fulltext_data WHERE MATCH(ft.data) AGAINST ("СТРОКА ПОИСКА" IN BOOLEAN MODE)

Спецификацию для MySQL можно посмотреть здесь: https://dev.mysql.com/doc/refman/5.7/en/fulltext-boolean.html