Full Text Search Configuration

Страница конфигурации полнотекстового поиска позволяет визуально редактировать файл fts.xml.

Если флажок Include configuration of the app components включен, свойство приложения cuba.ftsConfig включает конфигурационные файлы компонентов приложения. Если вы выключите данный флажок, сущности компонентов приложения не будут индексироваться до тех пор, пока вы не добавите их в конфигурацию FTS вашего проекта.

Список Entities содержит индексируемые сущности. Выберите сущность в списке и настройте параметры индексации в панели справа.

Таблица Include определяет правила включения атрибутов сущности в индекс. По умолчанию, все локальные (не ссылочные) атрибуты индексируются путем определения регулярного выражения .*. Можно также включать атрибуты по-отдельности, указывая их имена в строках типа Property. Нажимайте Ctrl+Space для получения подсказки по имеющимся атрибутам сущности.

Таблица Exclude определяет правила исключения атрибутов, добавленных правилами Include. При создании правил типа Property Нажимайте Ctrl+Space для получения подсказки по имеющимся атрибутам сущности.

В поле Searchables можно указать скрипт Groovy для добавления в очередь на индексацию произвольных сущностей, связанных с текущей. Следующие объекты передаются в скрипт при его выполнении:

Например:
searchables.add(entity.card)

Поле Searchable if позволяет указать скрипт Groovy для исключения из индексирования определенных экземпляров сущности. В скрипт передается переменная entity (текущий экземпляр сущности). Скрипт должен вернуть true, если данный экземпляр должен быть проиндексирован, или false в противном случае. Например:

entity.versionOf == null

Поля Searchables и Searchable if поддерживают code completion при нажатии Ctrl+Space.

Внимание: определение конфигурации индексирования недостаточно для работы полнотекстового поиска в вашем приложенииde. Необходимо также выполнить следующее:

  1. Запустите приложение, откройте экран Administration > JMX Console, найдите JMX-бин app-core.fts:type=FtsManager, откройте атрибут Enable и установите флажок Value.
  2. Выйдите и войдите в приложение, снова откройте тот же JMX-бин и последовательно выполните методы reindexAll() и processQueue() для индексации имеющихся сущностей.
  3. Для того, чтобы запускать процесс индексирования периодически, создайте назначенное задание, вызывающее метод processQueue() бина cuba_FtsManager.