|
|
Publié surHier à 20h20
|
|
|
|

La recherche en texte intégral est un composant optionnel du moteur de base de données SQL Server. Si vous n’avez pas sélectionné la recherche en texte intégral lors de l’installation de SQL Server, relancez l’installateur SQL Server pour l’ajouter.
Aperçu
Un index en texte intégral inclut une ou plusieurs colonnes basées sur des caractères dans un tableau. Ces colonnes peuvent contenir l’un des types de données suivants : char, varchar, nchar, nvarchar, text, ntext, image, xml, ou varbinary(max), et FILESTREAM. Chaque index en texte intégral crée un index pour une ou plusieurs colonnes du tableau, et chaque colonne peut utiliser un langage spécifique.
Les requêtes en texte intégral fonctionnent sur des mots et expressions selon les règles de langues spécifiques (comme l’anglais ou le japonais), effectuant ainsi des recherches linguistiques basées sur les données textuelles de l’index intégral. Les requêtes en texte intégral peuvent inclure des mots et expressions simples, ou plusieurs formes de mots ou expressions. Une requête en texte intégral renvoie tous les documents contenant au moins une correspondance (également appelée « hit »). Une correspondance se produit lorsque le document cible contient tous les termes spécifiés dans la requête en texte intégral et correspond à tout autre critère de recherche (comme la distance entre les termes correspondants).
Installation du service de recherche en texte intégral de Linux Docker MSSQL 2022
Les références sont les suivantes :
Vérifiez si la fonction de recherche en texte intégral de SQL SERVER est installée
La commande est la suivante :
Recherche en texte intégral SQL Server, index en texte intégral
Tout d’abord, créez une nouvelle bibliothèque de test et insérez les données de test. Le script est le suivant :
Créez une table des matières en texte intégral
Une table des matières en texte intégral est utilisée pour stocker l’index intégral. Vous pouvez le créer directement en utilisant les scripts suivants :
Créer des index en texte intégral pour les tables de bases de données
Lors de la création d’un index en texte intégral pour une table de base de données, vous devez spécifier la langue correspondante. Comme la segmentation des mots varie selon les langues, SQL Server utilisera la segmentation des mots de la langue correspondante pour traiter les données dans la table. La recherche en texte intégral de SQL Server prend en charge environ 50 langues différentes, vous permettant de consulter toutes les langues prises en charge en interrogeant sys.fulltext_languages tables. Commandement :
Comme montré ci-dessous :
Ensuite, nous ajoutons un index en texte intégral pour le chinois simplifié aux champs Titre et Contenu du tableau des actualités :
Recherche en texte intégral pour les prédicats et fonctions
Les requêtes en texte intégral utilisent des prédicats en texte intégral (CONTIENTetTEXTE LIBRE) et fonctions de texte intégral (CONTAINSTABLEetLIBRETABLE)。 Ils prennent en charge la syntaxe complexe Transact-SQL, qui prend en charge différentes formes de termes de requête.
La différence entre CONTAINS et FREETEXT
CONTAINS: La connexion hyperlientérée est visible.
Utilisez des méthodes précises d’appariement pour trouver des mots ou expressions spécifiques dans le texte. Prend en charge des conditions de requête complexes, telles que la recherche de proximité (par exemple, les mots doivent apparaître proches les uns des autres), la recherche par préfixe, et plus encore. Il est généralement utilisé dans des situations où un contrôle plus spécifique des résultats de recherche est nécessaire.
FREETEXT: La connexion hyperlientérée est visible.
Offre une expérience de recherche plus flexible et basée sur le langage naturel. Aucun critère de recherche particulier n’est requis ; Il analyse automatiquement le texte d’entrée et essaie de trouver le contenu lié. Il convient davantage aux utilisateurs qui souhaitent effectuer des recherches simples par mots-clés comme Google, sans se soucier des emplacements ou formats spécifiques.
Les commandes sont les suivantes :
Comme montré ci-dessous :
CONTAINSTABLE et FREETEXT
CONTAINSTABLE renvoie des tables répondant aux critères de requête. Dans les instructions SQL, nous pouvons les traiter comme des tables régulières, et les requêtes utilisant CONTAINSTABLE renvoient une valeur RANK et une CLÉ pour chaque ligne. RANK est utilisé pour indiquer le degré de correspondance de corrélation, avec des valeurs comprises entre 0~1000, et KEY est l’ID du tableau principal. FREETEXTTABLE segmente d’abord les mots et phrases à interroger, puis interroge pour correspondre. La commande est la suivante :
Comme montré ci-dessous :
De plus, vous pouvez consulter les résultats de la segmentation en interrogeant sys.dm_fts_parser :
Comme montré ci-dessous :
émettre
Question : CONTAINS ne prend pas en charge les requêtes floues par défaut. Si vous entrez CONTAINS(Column, 'apple'), cela correspondra au mot racine (par exemple, apples) mais pas à l’ananas. Solution : Si des requêtes floues sont nécessaires, elles doivent être placées avant et après les jokersAjoutez des guillemets doubles et un astérisque:CONTAINS(Colonne, '"*pomme*"')
Référence:
La connexion hyperlientérée est visible.
La connexion hyperlientérée est visible. |
Précédent:Site web de télétravail, travail et travail freelance
|