Share via


Modifications importantes apportées à la recherche en texte intégral dans SQL Server 2008

Cette rubrique décrit les modifications importantes apportées à la recherche en texte intégral. Ces modifications peuvent interrompre les applications, scripts ou fonctionnalités fondés sur les versions antérieures de SQL Server. Il se peut que vous rencontriez ces problèmes lors d'une mise à niveau. Pour plus d'informations, consultez Utilisation du Conseiller de mise à niveau pour la préparation des mises à niveau.

Dernières modifications

Voici les modifications importantes qui ont été apportées à la recherche en texte intégral dans SQL Server 2008.

Fonctionnalité

Scénario

SQL Server 2005

SQL Server 2008

CONTAINSTABLE avec types définis par l'utilisateur

La clé de texte intégral est un type défini par l'utilisateur SQL Server, par exemple MyType = char(1).

La clé retournée est du type assigné au type défini par l'utilisateur.

Dans l'exemple, il s'agirait de char(1).

La clé retournée est du type défini par l'utilisateur. Dans l'exemple, il s'agirait de MyType.

Paramètre top_n_by_rank (des instructions CONTAINSTABLE et FREETEXTTABLETransact-SQL)

Requêtes top_n_by_rank qui utilisent 0 comme paramètre.

Échec avec un message d'erreur qui signale que vous devez utiliser une valeur supérieure à zéro.

Réussite, retourne des lignes nulles.

CONTAINSTABLE et ItemCount

Suppression de lignes de table de base avant de pousser les modifications vers MSSearch.

CONTAINSTABLE retourne un enregistrement fantôme. ItemCount n'est pas modifié.

CONTAINSTABLE ne retourne pas d'enregistrements fantômes.

FREETEXT ou FREETEXTTABLE

Recherche d'une expression exacte.

Si la chaîne de recherche (freetext_string) est placée entre guillemets doubles, les recherches de radicaux et les comparaisons au dictionnaire des synonymes ne sont pas effectuées, et la chaîne retourne uniquement les correspondances exactes comme s'il s'agissait d'une recherche d'expression. Par exemple, le fait de spécifier "expéditions rapides" dans un prédicat FREETEXT retournerait uniquement les lignes contenant "expéditions rapides". L'expression "expédition rapide de votre package" ne serait pas retournée.

FREETEXT et FREETEXTTABLE, qui effectuent des recherches de radicaux et des comparaisons au dictionnaire des synonymes, que la chaîne de recherche soit placée entre guillemets simples ou doubles, ne permettent plus d'effectuer des recherches d'expressions. Par exemple, la recherche de "expéditions rapides" retournerait aussi bien "expéditions rapides" que "expédition rapide de votre package".

Pour rechercher une expression, utilisez CONTAINS ou CONTAINSTABLE.

ItemCount

La table contient des documents ou des colonnes de type Null.

En plus des documents indexés, les documents qui sont Null ou qui ont des types Null sont comptés dans la valeur ItemCount.

Seuls les documents indexés sont comptés dans la valeur ItemCount.

Catalogue ItemCount

Colonne blob avec une extension NULL.

Comptée dans ItemCount du catalogue

Non comptée dans ItemCount du catalogue.

UniqueKeyCount

Interrogation d'un nombre de clés uniques d'un catalogue, par exemple deux tables (table1 et table2) chacune avec trois mots : word1, word2 et word3.

UniqueKeyCount = 9. Le tableau suivant résume comment cette valeur est atteinte :

table1 = 3

EOF pour l'index de recherche en texte intégral de table1 = 1

table2 = 3

EOF pour l'index de recherche en texte intégral de table2 = 1

catalogue de texte intégral = 1

Pour chaque table, UniqueKeyCount est le nombre de mots clés distincts + 1 (0xFF). Cela ne traite PAS les mêmes mots dans > 1 doc comme nouvelle clé unique.

Pour un catalogue, UniqueKeyCount est la somme de UniqueKeyCount de chacune des tables sous le catalogue. Les mots identiques de tables différentes sont traités comme des clés uniques. Dans ce cas, le nombre de clés uniques est 8.

Option de niveau serveur precompute rank

Optimisation des performances des requêtes FREETEXTTABLE.

Lorsque cette option est définie sur 1, les requêtes FREETEXTTABLE précisant le paramètre top_n_by_rank se basent sur des données de classement précalculées qui sont stockées dans des catalogues de texte intégral.

Non prise en charge.

sp_fulltext_pendingchanges lors de la mise à jour d'une colonne clé

Mise à jour de la colonne clé de texte intégral sur une ligne d'une table de 2 lignes et exécution de sp_fulltext_pendingchanges.

Les deux lignes apparaissent.

Une seule ligne apparaît.

Fonctions inline

Fonctions inline avec un opérateur de texte intégral

Retournent un message d'erreur.

Retournent les lignes pertinentes.

sp_fulltext_database

Activation ou désactivation de la recherche en texte intégral à l'aide de sp_fulltext_database.

Aucun résultat n'est retourné pour les requêtes de texte intégral. Si le texte intégral est désactivé pour la base de données, les opérations de texte intégral ne sont pas autorisées.

Retourne des résultats pour les requêtes de texte intégral et les opérations de texte intégral sont autorisées même si le texte intégral est désactivé pour la base de données.

Mots vides spécifiques aux paramètres régionaux

Requêtes dans des variantesd'un langage parent spécifiques aux paramètres régionaux, tel que le français de Belgique et le français du Canada.

Les requêtes dans des variantesspécifiques aux paramètres régionaux sont traitées par les composants (analyseurs lexicaux, générateurs de formes dérivées et mots vides) de leur langage parent. Par exemple, les composants Français (France) sont utilisés pour analyser le Français (Belgique).

Vous devez ajouter des mots vides de manière explicite pour chaque identificateur de paramètres régionaux (LCID). Par exemple, vous devriez spécifier un LCID pour la Belgique, le Canada et la France.

Processus d'indexation par radicaux du dictionnaire des synonymes

Utilisation du dictionnaire des synonymes et des formes flexionnelles (indexation par radicaux).

Un mot du dictionnaire des synonymes est ramené automatiquement à son radical après son expansion.

Si vous souhaitez que la forme radicale figure dans l'expansion, vous devez l'ajouter de manière explicite.

Chemin d'accès au catalogue de texte intégral et groupe de fichiers

Utilisation des catalogues de texte intégral.

Chaque catalogue de texte intégral a un chemin d'accès physique et appartient à un groupe de fichiers. Il est traité en tant que fichier de base de données.

Un catalogue de texte intégral est un objet virtuel qui n'appartient à aucun groupe de fichiers. Un catalogue de texte intégral est un concept logique qui fait référence à un groupe d'index de texte intégral.

RemarqueRemarque
Les instructions DDL Transact-SQLSQL Server 2005 qui spécifient des catalogues de texte intégral fonctionnent correctement.

sys.fulltext_catalogs

Utilisation du chemin d'accès, data_space_id et file_id de cet affichage catalogue.

Ces colonnes retournent une valeur spécifique.

Ces colonnes retournent NULL car le catalogue de texte intégral ne se trouve plus dans le système de fichiers.

sys.sysfulltextcatalogs

Utilisation de la colonne de chemin d'accès de cette table système abandonnée.

Retourne le chemin d'accès de système de fichiers du catalogue de texte intégral.

Retourne NULL car le catalogue de texte intégral ne se trouve plus dans le système de fichiers.

sp_help_fulltext_catalogs

sp_help_fulltext_catalogs_cursor

Utilisation de la colonne PATH de ces procédures stockées abandonnées.

Retourne le chemin d'accès de système de fichiers du catalogue de texte intégral.

Retourne NULL car le catalogue de texte intégral ne se trouve plus dans le système de fichiers.

sp_help_fulltext_catalog_components

Utilisation de sp_help_fulltext_catalog_components de cette procédure stockée.

Retourne une liste de tous les composants (filtres, analyseurs lexicaux et gestionnaires de protocoles) utilisés pour tous les catalogues de texte intégral dans la base de données active.

Retourne des lignes vides.

DATABASEPROPERTY et DATABASEPROPERTYEX

Utilisation de la propriété IsFullTextEnabled.

Le paramètre IsFullTextEnabled indique si la recherche en texte intégral est activée dans une base de données spécifique.

La valeur de cette colonne est sans effet. Les bases de données utilisateur sont toujours activées pour la recherche en texte intégral.

Historique des modifications

Mise à jour du contenu

Ajout au tableau d'une ligne relative à la fonctionnalité FREETEXT.