Modifications importantes apportées à la recherche en texte intégral
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 Utiliser le Conseiller de mise à niveau pour la préparation des mises à niveau.
Modifications importantes de la recherche en texte intégral dans SQL Server 2012
Classement modifié pour la colonne de nom dans sys.fulltext_languages
Le classement de la colonne de nom de la langue dans l'affichage catalogue sys.fulltext_languages (Transact-SQL) est passé d'un classement fixe de la base de données de ressources au classement par défaut sélectionné pour l'instance de SQL Server. Cette modification permet de comparer les valeurs dans la colonne de nom lorsque vous joignez la vue sys.syslanguages (Transact-SQL) avec sys.fulltext_languages. Par exemple, vous pouvez définir des requêtes toutes les bases de données dont la langue de texte intégral par défaut est différente de la langue de la base de données par défaut.
Dernières modifications dans la recherche en texte intégral dans SQL Server 2008
Les modifications décrites ci-dessous s'appliquent à la recherche en texte intégral entre SQL Server 2005 et SQL Server 2008 et les versions ultérieures.
Fonctionnalité |
Scénario |
SQL Server 2005 |
SQL Server 2008 et versions ultérieures |
---|---|---|---|
CONTAINSTABLE avec des 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 FREETEXTTABLE Transact-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 zéro ligne. |
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. |
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. |
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.
|
Utilisation de path, data_space_id et de 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. |
|
Utilisation de la colonne path de cette table système déconseillé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. |
|
Utilisation de la colonne PATH de ces procédures stockées déconseillé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. |
|
Utilisation de sp_help_fulltext_catalog_components de cette procédure stockée. |
Retourne la 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. |
|
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. |
Voir aussi
Concepts
Changements de comportement de la recherche en texte intégral