Partager via


Changements majeurs apportés à la recherche Full-Text

Cette rubrique décrit les modifications importantes dans 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 l’Conseiller de mise à niveau pour préparer les mises à niveau.

Changements importants dans la recherche Full-Text dans SQL Server 2014

Informations à venir plus tard.

Modifications importantes dans la fonction de recherche Full-Text de SQL Server 2012

Classement modifié pour la colonne 'name' dans sys.fulltext_languages

Le classement de la colonne de nom de langue dans l’affichage catalogue sys.fulltext_languages (Transact-SQL) a été remplacé par le classement fixe de la base de données de ressources par le classement par défaut sélectionné pour l’instance de SQL Server. Cette modification permet de comparer les valeurs de la colonne de nom lorsque vous joignez la vue sys.syslanguages (Transact-SQL) avec sys.fulltext_languages. Par exemple, vous pouvez rechercher toutes les bases de données où la langue de texte intégral par défaut est différente de la langue de base de données par défaut.

Changements cassants dans la recherche Full-Text dans SQL Server 2008

Les modifications majeures suivantes s’appliquent à la recherche Full-Text entre SQL Server 2005 et SQL Server 2008 ainsi que les versions ultérieures.

Caractéristique Scénario SQL Server 2005 SQL Server 2008 et versions ultérieures
CONTAINSTABLE avec des types définis par l’utilisateur (UDT) 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 affecté au type défini par l’utilisateur.

Dans l’exemple, il s’agit de char(1).
La clé retournée est du type défini par l’utilisateur. Dans l’exemple, il s’agit de MyType.
paramètre top_n_by_rank (des instructions CONTAINSTABLE et FREETEXTTABLETransact-SQL) top_n_by_rank requêtes utilisant 0 comme paramètre. Échoue avec un message d’erreur indiquant que vous devez utiliser une valeur supérieure à zéro. Réussit et retourne zéro ligne.
CONTAINSTABLE et ItemCount Supprimez les lignes de la table de base avant d’envoyer des modifications à MSSearch. CONTAINSTABLE retourne un enregistrement fantôme. ItemCount n’est pas modifié. CONTAINSTABLE ne retourne aucun enregistrement fantôme.
ItemCount La table contient des documents null ou des colonnes de type. Outre les documents indexés, les documents qui sont null ou qui ont des types Null sont comptabilisés dans la valeur ItemCount . Seuls les documents indexés sont comptabilisés dans la valeur ItemCount .
Catalog ItemCount Colonne d’objets blob avec une extension NULL. Elle est comptabilisée dans ItemCount du catalogue Elle n’est pas comptabilisée dans ItemCount du catalogue.
UniqueKeyCount Interroger le nombre de clés uniques à partir d’un catalogue, par exemple, deux tables (table1 et table2) comprenant chacune trois mots : word1, word2 et word3. UniqueKeyCount = 9. Le tableau suivant résume la façon dont cette valeur est atteinte :

table1 = 3

EOF pour l’index de texte intégral du tableau1 = 1

table2 = 3

EOF pour l’index de texte intégral du tableau2 = 1

catalogue de textes complets = 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 document comme une nouvelle clé unique.

Pour un catalogue, UniqueKeyCount est la somme de UniqueKeyCount de chacune des tables sous le catalogue. Les mots identiques de différentes tables sont traités comme des clés uniques. Dans ce cas, le nombre de clés unique est de 8.
Option de niveau serveur de pré-calcul du classement Optimisation des performances des requêtes FREETEXTTABLE. Lorsque l’option est définie sur 1, les requêtes FREETEXTTABLE spécifiées avec top_n_by_rank utiliser des données de classement précomputées stockées dans les catalogues de texte intégral. Non pris en charge.
sp_fulltext_pendingchanges lors de la mise à jour de la colonne clé Mettez à jour la colonne clé de texte intégral sur une ligne d’une table de 2 lignes et exécutez sp_fulltext_pendingchanges. Les deux lignes s’affichent. Une seule ligne s’affiche.
Fonctions en ligne Fonctions inline avec un opérateur de texte intégral Retourne un message d’erreur. Retournez les lignes pertinentes.
sp_fulltext_database Activez ou désactivez 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 recherche en texte intégral ne sont pas autorisées. Retourne les résultats aux requêtes de texte intégral et aux opérations de recherche en texte intégral autorisées, même si le texte intégral est désactivé pour la base de données.
Mots d’arrêt spécifiques aux paramètres régionaux Interroge des variantes linguistiques spécifiques d'une langue parente, telles que le français belge et le français canadien. Les variantes spécifiques à la langue locale sont traitées par les composants (découpeurs de mots, lemmatiseurs et mots vides) de leur langue parente. Par exemple, les composants français (France) sont utilisés pour analyser le français (Belgique). Vous devez ajouter des mots vides explicitement pour chaque identificateur de paramètres régionaux (LCID). Par exemple, vous devez spécifier un LCID pour la Belgique, le Canada et la France.
Processus de recherche du dictionnaire des synonymes Utilisation des thésaurus et des formes flexionnelles (lemmatisation). Un mot du thésaurus est automatiquement lemmatisé après son expansion. Si vous souhaitez que la forme dérivée dans l’expansion, vous devez ajouter explicitement la forme dérivée.
Chemin du catalogue de texte intégral et groupe de fichiers Utilisation de catalogues de texte intégral. Chaque catalogue de texte intégral possède un chemin d’accès physique et appartient à un groupe de fichiers. Il est traité comme un fichier de base de données. Un catalogue de texte intégral est un objet virtuel et 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 recherche en texte intégral.

Remarque : Les instructions DDL SQL Server 2005Transact-SQL qui spécifient des catalogues de texte intégral fonctionnent correctement.
sys.fulltext_catalogs À l’aide 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 n’est plus situé dans le système de fichiers.
sys.sysfulltextcatalogs Utilisation de la colonne chemin d’accès de cette table système déconseillée. Retourne le chemin du système de fichiers du catalogue de texte intégral. Retourne NULL, car le catalogue de texte intégral n’est plus situé dans le système de fichiers.
sp_aide_catalogues_texte_intégral

sp_help_fulltext_catalogs_cursor
En utilisant la colonne PATH de ces procédures stockées déconseillées. Retourne le chemin du système de fichiers du catalogue de texte intégral. Retourne NULL, car le catalogue de texte intégral n’est plus situé 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 la liste de tous les composants (filtres, analyseurs de mots et gestionnaires de protocole), utilisés pour tous les catalogues de texte intégral dans la base de données active. Retourne des lignes vides.
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 donnée. La valeur de cette colonne n’a aucun effet. Les bases de données utilisateur sont toujours activées pour la recherche en texte intégral.

Voir aussi

Modifications de comportement apportées à la recherche Full-Text
Recherche en texte intégral