IBM Books
(C) IBM Corp. 2000

DB2 Extension Net Search - Guide d'administration et d'utilisation

DB2EXT.TEXTSEARCH

En plus des fonctions de recherche de procédure mémorisée et de recherche scalaire SQL, l'Extension Net Search fournit deux fonctions de valeur table SQL qui ressemblent beaucoup à la procédure mémorisée.

Les deux fonctions de valeur table s'appellent db2ext.textsearch. Le seul point qui les différencie est que l'une prend en charge la fonction HIGHLIGHT et comporte deux paramètres supplémentaires numberOfHits et hitInformation.

Notez que vous ne pouvez pas utiliser la fonction de valeur table sur des tables avec un clé primaire composée.

Pour plus d'informations sur l'utilisation de la fonction HIGHLIGHT, reportez-vous à la section DB2EXT.HIGHLIGHT.

Remarque

La fonction valeur table peut être utilisée dans un environnement DB2 réparti, uniquement si la table utilisateur est stockée dans un espace table ne possédant qu'un seul noeud. Vous devez également vous assurer que vous vous connectez au bon noeud en utilisant la variable d'environnement DB2NODE.

Syntaxe de la fonction

1. db2ext.textsearch sans prise en charge de HIGHLIGHT
 
                
db2ext.textSearch
                (
                query	   	        VARCHAR(4096),
                indexSchema   	   VARCHAR(128),
                indexName        	VARCHAR(128),
                resultFirstRow   	INTEGER,
                resultNumberRows 	INTEGER,
                primKeyBinding   	<supported types>,// same type as primary key
                )
 
                return table
                (
                primKey           <supported types>,// same type as primary key
                numberOfMatches   INTEGER,
                score             DOUBLE,
                totalNbResults    INTEGER
                )
 
 
2. db2ext.textsearch avec prise en charge de HIGHLIGHT
 
 
                db2ext.textSearch
                (
                query	   	        VARCHAR(4096),
                indexSchema       VARCHAR(128),
                indexName        	VARCHAR(128),
                resultFirstRow   	INTEGER,
                resultNumberRows 	INTEGER,
                primKeyBinding   	<supported types>,// same type as primary key
                numberOfHits      INTEGER
                )
 
                return table
                (
                primKey           <supported types>,// same type as primary key
                numberOfMatches   INTEGER,
                score             DOUBLE,
                totalNbResults    INTEGER
                hitInformation    BLOB(20K)
                )
 
 

Paramètres de fonction

Les paramètres suivants sont les paramètres d'entrée :

query
Pour plus d'informations, reportez-vous au Chapitre 14, Syntaxe des arguments de recherche.

indexSchema, indexName
Identifient l'index dans lequel rechercher. Pour plus d'informations, reportez-vous à la section CREATE INDEX.

resultFirstRow
La liste des résultats de la requête est renvoyée en plusieurs parties. Ce paramètre indique quelle est la ligne de la liste des résultats de la requête devant être saisie en premier dans la table de résultats de la fonction valeur table. La valeur doit être supérieure ou égale à 0.

Notez que le chiffre 0 identifie la première ligne dans la liste des résultats de la requête.

resultNumberRows
Ce paramètre indique le nombre de lignes de la liste des résultats de la requête entrées dans la table de résultats de la fonction valeur table et où 0 signifie que tous les résultats doivent être renvoyés.

Notez que ceci est différent du paramètre correspondant au nombre maximal de résultats qui détermine la taille maximale de la liste des résultats de la requête.

primaryKeyBinding
Le type de ce paramètre détermine le type du paramètre de sortie primaryKey. Si l'index de texte a été créé pour une table de base avec une clé primaire de type <type1>, primaryKeyBinding doit dans ce cas être également de type <type1>.

En outre, le paramètre détermine la portée de la recherche de texte. Si primaryKeyBinding a pour valeur NULL ("CAST(NULL as <type1>)", la portée de la recherche sera tous les documents stockés dans l'index. Il est également possible de limiter la recherche aux documents auxquels primaryKeyBinding est lié.

Par exemple, si primaryKeyBinding a pour valeur CAST(5 as BIGINT), la recherche est limitée à un seul document avec la valeur de clé primaire BIGINT égale à "5".

Notez que seules les clés primaires de colonnes uniques de types suivants sont prises en charge : SMALLINT, INTEGER, BIGINT, REAL, DOUBLE, VARCHAR FOR BIT DATA, DATE, TIME et TIMESTAMP.

numberOfhits
Cette option spécifie le nombre maximal d'informations pour les occurrences renvoyées par la fonction db2ext.textsearch. Si la valeur 0 est spécifiée, les informations pour 1100 occurrences au maximum sont fournies. Ce processus peut prendre beaucoup de temps.

Notez que ce paramètre est nécessaire uniquement pour la construction d'informations HIGHLIGHT requises par la fonction db2ext.highlight.

Paramètres de fonction

Les valeurs renvoyées énoncées ci-dessous sont stockées dans une table temporaire qui doit être jointe à la table normale, pour le cas où d'autres résultats seraient demandés. Notez que les valeurs NUMBEROFMATCHES, SCORE, TOTALNUMBEROFRESULTS et HITINFORMATION ne sont calculées que si elles sont demandées dans l'instruction select.

primKey
Clé primaire du document trouvé.

numberofmatches
NUMBEROFMATCHES est un entier (INTEGER) indiquant le nombre d'occurrences trouvées pour chaque document.

score
SCORE renvoie une valeur DOUBLE. Plus le terme recherché dans le document est fréquent, plus le score du document augmente.

totalNumberOfResults
La liste des résultats de la requête indique le nombre de résultats trouvés. Notez que chaque ligne a la même valeur.

Notez également que si vous utilisez STOP SEARCH AFTER ou RESULT LIMIT avec la syntaxe SCORE dans une requête, ce nombre n'est plus fiable.

hitInformation
Les informations sur les occurrences renvoyées par db2ext.textsearch sont nécessaires pour le traitement de la mise en évidence. Ce paramètre de sortie peut contenir couramment les informations relatives à approximativement 1100 occurrences. Si le nombre d'occurrences dépasse ce seuil, les informations relatives aux autres occurrences sont ignorées.

Notez que cette valeur est renvoyée uniquement si vous spécifiez la valeur de numberOfHits.

Usage

Avec la fonction de valeur table SQL, vous pouvez effectuer des recherches dans des vues, de la même façon qu'avec la recherche de procédure mémorisée. Cependant, aucune mémoire partagée n'est nécessaire, ainsi l'index n'a pas besoin d'être activé.

Cette fonction est principalement destinée aux utilisateurs ayant utilisé une requête SQL dans la recherche de procédure mémorisée. Cependant, uniquement une clé primaire de colonne seule est prise en charge sur des tables de base.

L'exemple suivant montre comment travailler dans une table de clé primaire à plusieurs colonnes :

select s.id from 
db2ext.sample s, table (db2ext.textSearch( 
        '"characteristics"',
         'DB2EXT',
         'COMMANDS',
         1,
         20,
         cast(NULL as INTEGER))) t 
where s.id = t.primkey

Dans cet exemple, vous devez d'abord créer une vue sur cette table avec une seule clé unique, puis créer l'index sur la vue.

Pour obtenir un exemple d'utilisation de la fonction de valeur table avec la fonction db2ext.highlight, reportez-vous à la page ***.


[ Début de page | Page précédente | Page suivante | Table des matières | Index ]