Changements de comportement de la recherche en texte intégral
Cette rubrique décrit les changements de comportement de la recherche en texte intégral. Les modifications de comportement affectent le mode de fonctionnement ou d'interaction des fonctionnalités dans SQL Server 2012 par rapport aux versions précédentes de SQL Server.
Modifications du comportement de la recherche en texte intégral dans SQL Server 2012
SQL Server 2012 installe une nouvelle version des analyseurs lexicaux et des générateurs de formes dérivés pour l'anglais américain (LCID 1033) et l'anglais du Royaume-Uni (LCID 2057). Toutefois, vous pouvez revenir à la version précédente de ces composants si vous souhaitez conserver le comportement précédent. Pour plus d'informations, consultez Modifier l'analyseur lexical utilisé pour l'anglais des États-Unis et l'anglais du Royaume-Uni.
Nouveaux analyseurs lexicaux et générateurs de formes dérivées installés
SQL Server 2012 met à jour les analyseurs lexicaux et générateurs de formes dérivées utilisés par la recherche en texte intégral et la recherche sémantique. Pour des raisons de cohérence entre le contenu des index et les résultats des requêtes, nous vous recommandons de réalimenter les index de recherche en texte intégral existants.
Il existe de nouveaux analyseurs lexicaux pour l'anglais. Si vous devez conserver le comportement antérieur, consultez Modifier l'analyseur lexical utilisé pour l'anglais des États-Unis et l'anglais du Royaume-Uni.
Les analyseurs lexicaux tiers pour le danois, le polonais et le turc qui étaient inclus avec les versions antérieures de SQL Server ont été remplacés par les composants Microsoft. Les nouveaux composants sont activés par défaut.
Il existe de nouveaux analyseurs lexicaux pour le tchèque et le grec. Les versions antérieures de la recherche en texte intégral de SQL Server ne prenaient pas en charge ces deux langues.
Changements de comportement des nouveaux analyseurs lexicaux et générateurs de formes dérivées
Les nouveaux composants peuvent retourner des résultats autres que les composants plus anciens lorsque vous remplissez et interrogez les index de recherche en texte intégral. Les tableaux suivants illustrent certaines différences pouvant se présenter dans des résultats en anglais.
Si vous devez conserver le comportement antérieur des analyseurs lexicaux et des générateurs de formes dérivées, consultez les rubriques suivantes :
Modifier l'analyseur lexical utilisé pour l'anglais des États-Unis et l'anglais du Royaume-Uni
Rétablir la version précédente des analyseurs lexicaux utilisés par la recherche
Dans certains cas, les nouveaux composants retournent davantage de résultats :
Terme |
Résultats avec l'analyseur lexical et le générateur de formes dérivées précédents |
Résultats avec les nouveaux analyseur lexical et générateur de formes dérivées |
---|---|---|
cat-dog |
cat dog |
cat cat-dog dog |
cat@dog.com |
cat com dog |
cat cat@dog.com com dog |
12/11/2011 (où le terme est une date) |
12/11/2011 dd20111211 |
11 12 12/11/2011 2011 dd20111211 |
Dans certains cas, les nouveaux composants retournent des résultats similaires :
Terme |
Résultats avec l'analyseur lexical et le générateur de formes dérivées précédents |
Résultats avec les nouveaux analyseur lexical et générateur de formes dérivées |
---|---|---|
100$ |
100$ nn100$ |
100$ nn100usd |
022 |
022 nn022 |
022 nn22 |
10:49AM (où le terme est une heure) |
10:49am tt1049 |
10:49am tt24104900 |
Dans certains cas les nouveaux composants retournent moins de résultats ou des résultats qui peuvent être inattendus par les applications :
Terme |
Résultats avec l'analyseur lexical et le générateur de formes dérivées précédents |
Résultats avec les nouveaux analyseur lexical et générateur de formes dérivées |
---|---|---|
jěˊÿqℭžl (où les termes ne sont pas des caractères anglais valides) |
‘jěˊÿqℭžl’ |
je yq zl |
table's |
table’s table |
table’s |
cat- |
cat cat- |
cat |
v-z (où v et z sont des mots parasites) |
(aucun résultat) |
v-z |
$100 000 USD |
$100 000 nn000 nn100$ usd |
$100 000 usd nn100000usd |
beautiful U.S land |
beautiful land u.s us |
beautiful land |
Mt. Kent and Mt Challenger |
challenger kent mt mt. |
mt kent challenger |
Modifications du comportement de la recherche en texte intégral dans SQL Server 2008
Dans SQL Server 2008 et les versions ultérieures, le moteur de recherche en texte intégral est intégré en tant que service de base de données dans la base de données relationnelle dans le cadre de la requête de serveur et l'infrastructure de moteur de stockage. La nouvelle architecture de recherche en texte intégral réalise les objectifs suivants :
Stockage et gestion intégrés — La recherche en texte intégral est maintenant intégrée directement avec les fonctions inhérentes de stockage et de gestion de SQL Server, et le service MSFTESQL n'existe plus.
Les index de recherche en texte intégral sont stockés dans les groupes de fichiers de la base de données, et non dans le système de fichiers. Les opérations d'administration sur une base de données, telles que la création d'une sauvegarde, affectent automatiquement les index de recherche en texte intégral.
Un catalogue de texte intégral est maintenant un objet virtuel qui n'appartient à aucun groupe de fichiers ; c'est un concept logique qui renvoie à un groupe d'index de recherche en texte intégral. Par conséquent, de nombreuses fonctionnalités de gestion de catalogue ont été déconseillées, et cet abandon a créé des modifications avec rupture pour quelques fonctionnalités. Pour plus d'informations, consultez Fonctionnalités du moteur de base de données déconseillées dans SQL Server 2012 et Modifications importantes apportées à la recherche en texte intégral.
[!REMARQUE]
Les instructions DDL Transact-SQL SQL Server 2005 qui spécifient des catalogues de texte intégral fonctionnent correctement.
Traitement de requêtes intégré — Le nouveau processeur de requêtes de recherche en texte intégral fait partie du moteur de base de données et est pleinement intégré avec le processeur de requêtes SQL Server. Cela signifie que l'optimiseur de requête reconnaît les prédicats de requête de texte intégral et les exécute automatiquement aussi efficacement que possible.
Administration et résolution des problèmes améliorées — La recherche en texte intégral intégrée fournit des outils pour vous aider à analyser des structures de recherche telles que l'index de recherche en texte intégral, le résultat d'un analyseur lexical donné, la configuration de mot vide, etc.
Les mots vides et les listes de mots vides ont remplacé les mots parasites et les fichiers de mots parasites. Une liste de mots vides est un objet de base de données qui facilite les tâches gestion des mots vides et améliore l'intégrité entre instances de serveur différentes et environnements. Pour plus d'informations, consultez Configurer et gérer les mots vides et listes de mots vides pour la recherche en texte intégral.
SQL Server 2008 et les versions ultérieures contiennent de nouveaux analyseurs lexicaux pour un grand nombre des langues prises en charge par SQL Server 2005. Seuls les analyseurs lexicaux pour l'anglais, le coréen, le thaï et le chinois (traditionnel et simplifié) restent inchangés. Pour les autres langues, si un catalogue de texte intégral a été importé lorsqu'une base de données SQL Server 2005 a été mise à niveau vers SQL Server 2008 ou une version ultérieure, une ou plusieurs langues utilisées par les index de recherche en texte intégral dans le catalogue de texte intégral peuvent maintenant être associées aux nouveaux analyseurs lexicaux, lesquels peuvent se comporter un peu différemment des analyseurs lexicaux importés. Pour plus d'informations sur la façon de garantir la cohérence entre des requêtes et du contenu d'index de recherche en texte intégral, consultez Mettre à niveau la recherche en texte intégral à partir de SQL Server 2005.
Un nouveau service de lancement FDHOST (MSSQLFDLauncher) a été ajouté. Pour plus d'informations, consultez Commencer à utiliser la recherche en texte intégral.
L'indexation de texte intégral fonctionne avec une colonne FILESTREAM de la même façon qu'avec une colonne varbinary(max). La table FILESTREAM doit avoir une colonne qui contient l'extension de nom de fichier pour chaque objet blob FILESTREAM. Pour plus d'informations, consultez Exécuter une requête avec une recherche en texte intégral,Configurer et gérer des filtres pour la recherche et sys.fulltext_document_types (Transact-SQL).
Le moteur de texte intégral indexe le contenu des objets blob FILESTREAM. L'indexation de fichiers tels que des images peut ne pas être utile. Lorsqu'un objet blob FILESTREAM est mis à jour, il est réindexé.
Voir aussi
Concepts
Recherche en texte intégral (SQL Server)
Mettre à niveau la recherche en texte intégral à partir de SQL Server 2005
Commencer à utiliser la recherche en texte intégral