Серверные задачи Update (Indexer)
UPDATE и UPDALL Серверные задачи Update (Indexer) и Updall занимаются поддержкой и обновлением индексов видов и индексов полнотекстового поиска в базах данных. Они также восстанавливают удаленные индексы видов и полнотекстового поиска.
Индекс вида (не путайте с индексом полнотекстового поиска) хранится в самой базе и необходим для того, чтобы станция Notes могла оперативно предъявлять пользователю содержимое вида - оно формируется на основе индекса вида в базе. Индекс полнотекстового поиска хранится отдельно от базы, в каталоге, имя которого совпадает с именем базы, а "расширение" равно FT. Индекс полнотекстового поиска необходим, чтобы находить в базе документы с указанными в запросе полнотекстового поиска словами.
Update - оперативное обновление индексов
Серверная задача Update (имя выполняемого файла xUPDATE.exe, где x зависит от платформы, но на консоли представлена под именем Indexer) по умолчанию включена в файл NOTES.INI в список ServerTasks, а потому загружается автоматически при запуске сервера. Update обновляет соответствующие индексы видов в базе данных, когда пользователь или серверная задача, например Replicator, создают, модифицируют или удаляют документы в этой базе. В случае если пользователь или серверная задача обращаются к виду, для которого в базе еще не существует индекса, Update создает индекс этого вида.
Сервер Notes поддерживает очередь запросов на изменение индексов видов в базах данных. Запросы в эту очередь поступают от различных серверных задач, которые создают, модифицируют или удаляют документы в базах. Задача Update опрашивает эту очередь каждые несколько секунд. Как только она находит в очереди запрос, то форсирует изменение тех индексов в заданной базе, которым согласно формуле отбора "принадлежат" эти документы. Если эта база имеет еще и индекс полнотекстового поиска с частотой обновления Immediate
("непосредственно при создании, удалении или модификации документа"), помимо изменения индексов видов задача Update обновляет индекс полнотекстового поиска.
В целях сохранения дискового пространства на сервере задача Update также занимается удалением индексов длительно неиспользуемых видов. Если разработчик базы данных не указал для вида опцию, касающуюся частоты удаления его индекса, т.е. в поле с меткой Discard index: выбрано значение по умолчанию Never ("никогда"), то задача Update удалит индекс этого вида, если он никем не использовался в течение 45 дней.

Рис. 3.14 Выбор частоты удаления индекса вида в окне свойств вида
Можно использовать в NOTES.INI переменную Default_Index_Lifetime_Days=<число дней>, чтобы изменить "время жизни индексов видов по умолчанию". Если же для вида была определена частота удаления индекса (After each use - "после каждого использования" или If inactive for x days - "если не использовался в течении x дней"), задача Update будет удалять индекс с заданной частотой.
В версиях 4.х можно запускать сразу несколько задач Update, устанавливая в NOTES.INI переменную Updaters (число задач Update, запускаемых при старте сервера) или вручную с консоли (командой Load Update). Это может ускорить обновление индексов, но при условии, что компьютер сервера имеет соответствующий запас производительности. Отметим, что команда консоли Tell Update Quit приводит к завершению сразу всех запущенных на сервере задач Update. Однако для нормальной работы сервера необходима хотя бы одна задача Update...
Updall - ежедневное обслуживание индексов
Серверная задача Updall запускается на сервере по умолчанию в 2 часа ночи (это задается в NOTES.INI переменной ServerTasksAt2) и модифицирует во всех базах на этом сервере все индексы видов, к которым обращались по крайней мере раз, и все индексы полнотекстового поиска. Чтобы запретить задаче Updall автоматически модифицировать индексы полнотекстового поиска, можно использовать переменную Update_No_Fulltext в NOTES.INI.
Если вы запускаете Updall вручную или посредством документа Program, вы можете дополнительно задавать аргументы, которые определяют, как задача работает. Формат команды для запуска UpdAll: Load Updall [database] [аргументы]. Аргументы могут быть следующими:
· -V
модифицирует индексы видов, к которым обращались по крайней мере раз, но не модифицирует индексы полнотекстового поиска
· -C
создает все до этого не существовавшие индексы видов и модифицирует индексы полнотекстового поиска
· -R
перестраивает заново все индексы видов, к которым обращались по крайней мере раз, и модифицирует индексы полнотекстового поиска. Но это может потребовать много времени, так что использовать аргумент -R целесообразно только при исправлении поврежденных индексов в базах
· -F
модифицирует индексы полнотекстового поиска, но не модифицирует индексы видов
· -X
перестраивает заново все индексы полнотекстового поиска
· -S
модифицирует индексы полнотекстового поиска, для которых назначена частота обновления Scheduled (по расписанию), Hourly (каждый час) и Immediate (непосредственно).

Рис. 3.15 Установка частоты обновления индекса полнотекстового поиска в окне свойств базы
· -H
модифицирует индексы полнотекстового поиска с частотой обновления Hourly (каждый час)
· database -T viewtitle модифицирует индекс вида viewtitle
в базе database.
Вы можете использовать имя базы данных как дополнительный параметр, причем с опцией -T он всегда необходим. Например, команда Load Updall SALES.NSF -R перестраивает индексы видов и модифицирует индекс полнотекстового поиска только в базе данных SALES.NSF. Чтобы перестроить только один вид в базе, можно воспользоваться командой Load Updall filename -R -T viewname. Однако то же самое часто можно сделать и со станции Notes:
· выбрать вид, который нужно перестроить
· нажать SHIFT+F9, чтобы перестроить только индекс этого вида, или CTRL+SHIFT+F9, чтобы перестроить индексы всех видов в базе.
Отметим, что в версии 4.5 у задачи Updall появились еще два параметра (-A и -B). Они относятся к возможности полнотекстового поиска сразу по многим базам данных и рассматриваются в 10.5.