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 Use Upgrade Advisor to Prepare for Upgrades.
Changements cassants dans Full-Text recherche dans SQL Server 2014
Informations qui seront fournies par la suite.
Changements cassants dans Full-Text recherche dans SQL Server 2012
Classement modifié pour la colonne de nom 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 le instance de SQL Server. Cette modification permet de comparer les valeurs de la colonne name 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 cassants suivantes s’appliquent à la recherche Full-Text entre SQL Server 2005 et SQL Server 2008 et 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 (UDT) | La clé de texte intégral est un type SQL Server défini par l’utilisateur, 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’agit de char(1). |
La clé retournée est du type défini par l'utilisateur. Dans l’exemple, il s’agit de MyType. |
top_n_by_rank paramètre (des instructions Transact-SQL CONTAINSTABLE et FREETEXTTABLE) | top_n_by_rank des requêtes en utilisant 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 . |
ItemCount du catalogue | Colonne blob avec une extension NULL. | Elle est comptabilisée dans ItemCount du catalogue | Elle n’est pas comptabilisé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 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 tables différentes sont traités comme des clés uniques. Dans ce cas, le nombre de clés uniques est 8. |
précalculer l’option de classement au niveau du serveur | 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 utilisent des données de classement précalculées stockées dans les catalogues de texte intégral. | Non prise en charge. |
sp_fulltext_pendingchanges lors de la mise à jour de la 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 | Interroge des variantes propres à l’environnement local d’une langue parente, telles que la Français belge et la Français canadienne. | Les requêtes spécifiques aux variantes locales sont traitées par les composants (analyseurs lexicaux, générateurs de formes dérivées et mots stop) 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 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 recherche en texte intégral. Remarque : SQL Server instructions DDL 2005Transact-SQL 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 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. |
sp_help_fulltext_catalogs sp_help_fulltext_catalogs_cursor |
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. |
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 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. |
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 est sans effet. Les bases de données utilisateur sont toujours activées pour la recherche en texte intégral. |
Voir aussi
Changements de comportement de la recherche en texte intégral
Recherche en texte intégral