Création, mises à jour et modification des propriétés d'index de recherche de texte
Vous pouvez utiliser un index de recherche de texte pour rechercher des données dans une colonne de texte à l'aide de fonctions de recherche de texte. Un index de recherche textuelle se compose de termes significatifs extraits de documents textuels. La clé primaire de la ligne du tableau est utilisée dans l'index pour identifier la source des termes.
Immédiatement après sa création, un index de recherche textuelle ne contient aucune donnée. Vous ajoutez des données à un index de recherche textuelle en utilisant la commande db2ts UPDATE INDEX ou la routine SQL administrative SYSTS_UPDATE. La première mise à jour de l'index, également appelée mise à jour initiale, ajoute tous les documents textuels d'une colonne de texte à l'index de recherche textuelle. Les mises à jour ultérieures, également appelées mises à jour incrémentielles, synchronisent les données de la table de base avec l'index de recherche textuelle.

La méthode de synchronisation de base utilise des déclencheurs qui stockent automatiquement les informations sur les nouveaux documents, les documents modifiés et les documents supprimés dans une table d'attente. Il existe une table de mise à disposition pour chaque index de texte.
Figure 2. Mise à jour incrémentale avec déclencheurs 
Comme la méthode de base n'utilise que des déclencheurs, les mises à jour qui ne sont pas reconnues par les déclencheurs sont ignorées, par exemple le chargement de données à l'aide de la commande LOAD et l'attachement ou le détachement des plages d'une table partitionnée.
La méthode de synchronisation étendue utilise un déclencheur pour stocker les informations sur les documents modifiés dans une table de préparation, mais capture les informations sur les documents nouveaux et supprimés par le biais du traitement de l'intégrité et stocke ces informations dans une table de préparation auxiliaire maintenue en texte. Si vous attachez une partition ou chargez des données, vous devez ensuite lancer la commande SET INTEGRITY sur la table de base pour rendre les données disponibles dans la table de préparation auxiliaire. Dans le cas où une partition est détachée, la table staging nécessite alors une autre commande SET INTEGRITY pour rendre les données accessibles au traitement. Il est également possible d'utiliser une commande RESET PENDING sur la table de base pour rendre les données accessibles dans toutes les tables auxiliaires. Le tableau de base est entièrement accessible pour les opérations de lecture et d'écriture pendant l'exécution de la commande. Si vous détachez une partition, vous devez lancer la commande RESET PENDING sur la table de base ou la commande SET INTEGRITY sur chacune des tables de préparation.
Figure 3 Mise à jour incrémentielle avec des déclencheurs et un traitement de l'intégrité 
Certaines opérations de la base de données invalident implicitement ou explicitement l'index de recherche textuelle. Une invalidation explicite définira l'état de l'index de recherche de texte INDSTATUS='INVALID' dans la vue administrative SYSIBMTS.TSINDEXES, par exemple, la commande ALTER DATABASE PARTITION GROUP. Une invalidation implicite se produit lorsque les modifications de contenu contournent le mécanisme de mise en scène, par exemple, si un INSERT LOAD est utilisé sans l'infrastructure de mise en scène étendue. Une invalidation implicite ne marquera pas l'index de recherche textuelle comme invalide.
Vous pouvez mettre à jour l'index de texte en utilisant une option manuelle ou automatique. L'option automatique utilise une programmation de la mise à jour avec définition des jours et des heures. Vous pouvez mettre à jour manuellement l'index de recherche textuelle en lançant la commande UPDATE INDEX FOR TEXT ou la procédure SYSPROC.SYSTS_UPDATE. L'index de recherche textuelle est mis à jour de manière asynchrone, c'est-à-dire en dehors de la transaction qui insère, met à jour ou supprime des données dans la base de données. Le traitement asynchrone des mises à jour de l'index de recherche textuelle améliore le débit et la simultanéité, car plusieurs mises à jour peuvent être regroupées et appliquées à une copie des segments d'index textuel concernés. L'index de recherche de texte n'est alors verrouillé en lecture que pendant une courte période, le temps que les segments d'index mis à jour remplacent les segments originaux.
Les index de recherche textuelle sont réorganisés automatiquement si nécessaire ; en outre, vous pouvez déclencher explicitement une réorganisation avec l' adminTool ou recréer un index avec l'option ALLROWS lorsque vous le mettez à jour.