管理和用户指南
在第一次创建和更新文本索引之后,必须保持文本索引是最新的。例如,当将文本文档添加至数据库或者更改数据库中的现有文档时,必须对该文档建立索引以使索引内容与该数据库的内容同步。同样,当从数据库中删除文本文档时,必须从索引中除去其对应项。
如果未使用 RECREATE INDEX ON UPDATE 选项来创建文本索引,则触发器会自动将有关新的、已更改的或已删除的文档的信息存储在内部日志表中。因此,在下一次进行索引更新时,将对日志表中引用的文档建立索引。有关视图的文本索引,参见有关视图的文本索引以获取附加信息。
如果在 CREATE INDEX 命令中指定了 RECREATE 选项,则将对每个更新完全重新构建索引。此选项不会创建任何日志表或触发器。
通常,按一定的时间间隔来更新索引。可以使用 ALTER INDEX 命令来更改现有索引的更新频率。
根据将要进行更新的时间和必须进行排队的最小文本更改数来指定索引更新频率。如果在给定的日期和时间内,日志表中没有足够的更改,则不会更新索引。
应当仔细地计划定期建立索引;对文本文档建立索引是一项既消耗时间又消耗资源的任务。所用的时间取决于很多因素。这些因素包括:文档大小、自从前一次索引更新以来已经添加或更改了的文本文档数以及处理器的能力。
注意 |
---|
在 DB2 表上,在下列情况下可能会发生回滚和死锁情况:
|
UPDATE INDEX 命令允许您一旦请求就立即更新索引。
总结 |
---|
|
以下命令将更新索引:
db2text UPDATE INDEX comment FOR TEXT
当已将几个文本文档添加至数据库并且想要立即搜索它们时,此命令很有用。
要确定是否需要进行手工重组,通过使用以下命令来查询 db2ext.textindexes 视图:
db2 "select reorg_suggested from db2ext.textindexes where INDNAME = 'comment'"
如果指定了 MANUAL REORGANIZATION 并且经常更新一列,则更新过程将变慢。要手工进行重组,使用以下命令:
dbtext UPDATE INDEX comment FOR TEXT reorganize
但是,如果在 CREATE INDEX 期间指定了 AUTOMATIC REORGANIZE,则在需要时将自动重组索引。