<ph type="x-smartling-placeholder">
Cette page explique en quoi consiste la recherche en texte intégral et son fonctionnement.
Présentation
La recherche en texte intégral vous permet de créer une application capable de rechercher des mots, des expressions ou des nombres, au lieu de simplement rechercher des correspondances exactes dans des champs structurés. Les recherches en texte intégral renvoient les résultats des données validées et cohérentes transactionnellement vers votre application. Spanner les fonctions de recherche en texte intégral incluent également des corrections orthographiques, automatiser la détection de la langue des termes de recherche et le classement des résultats de recherche. Spanner étend automatiquement les recherches textuelles pour inclure une correspondance approximative des mots.
Vous devez créer un index de recherche pour toutes les colonnes que vous souhaitez mettre à la disposition des recherches en texte intégral. Spanner analyse les données de ces colonnes pour identifier les mots individuels à ajouter à l'index de recherche. Spanner met à jour l'index de recherche avec les données nouvelles ou modifiées dès que elle est validée dans la base de données.
Types de recherche en texte intégral
- Recherche de texte basique: recherche de contenu en utilisant l'intégralité ou une partie d'une
mot ou expression pour obtenir des résultats fiables. Exemples de prédicats de requête :
- Correspond à tous les mots [tricolore terrier tricolore]
- Mot ou expression exacts ["rat terrier"]
- L'un des mots suivants : [miniature OU standard]
- Mot à proximité immédiate [world AROUND(3) cup]
- Sous-chaîne [start*]
- Recherche numérique : effectue des recherches d'égalité et d'inégalité numériques. Les recherches d'égalité correspondent à un nombre. Les recherches de plage et d'inégalité correspondent à un nombre compris dans une plage spécifique.
- Recherche basée sur les n-grammes : permet de faire correspondre des mots avec des variantes d'orthographe, y compris des noms propres et des noms. Ce type de recherche permet également de faire correspondre le texte de la requête avec des noms mal orthographiés, des noms avec d'autres orthographes et du texte avec d'autres des variantes orthographiques.
- Recherches Soundex : recherche des mots qui se prononcent de manière similaire.
Fonctionnalités de recherche en texte intégral
La recherche en texte intégral de Spanner offre les fonctionnalités suivantes:
- Résultats de recherche classés: calcule un score pour évaluer l'efficacité d'une requête correspond à un document (par exemple, en attribuant une pondération plus élevée à la colonne "column_A"). Utilisez des expressions SQL pour personnaliser le classement.
- Extraits: met en surbrillance le texte correspondant dans le résultat de recherche.
- Compatibilité mondiale : compatible automatiquement avec la tokenisation dans différentes langues, y compris la segmentation CJK. La spécification manuelle de la langue vous permet d'effectuer l'affinage.
- Gestion : permet de trouver toutes les occurrences de mots spécifiques.
- Correction orthographique: corrige automatiquement les mots mal orthographiés dans les requêtes. pour faire correspondre le mot correctement orthographié dans l'espace de stockage. Par exemple, si l'utilisateur recherche "girafe", la recherche trouve les documents contenant "girafe".
- Ajout de synonymes contextuels, y compris de mots vides: l'ajout automatique est automatique. des synonymes pertinents en contexte pour améliorer le souvenir publicitaire. Par exemple, "la maison" correspond à "cette maison" et "photo de chat" correspond à "photo de chat".
- Traduction contextuelle des nombres vers et depuis le texte : met en correspondance la version textuelle d'un nombre avec la représentation numérique et inversement. Par exemple, "cinq chats" correspond à "5 chats".
- Conversion automatique au pluriel : remplace "chat" par "chats".
Concepts de recherche en texte intégral
La recherche en texte intégral repose sur les concepts clés suivants:
- Un document désigne les données incluses dans l'index de recherche d'une ligne donnée.
- Un jeton fait référence à chaque mot d'un document stocké dans un index de recherche.
- Un processus de tokenisation divise un document en jetons.
- Un tokenizeur est une fonction SQL utilisée pour la tokenisation.
- Un index inversé stocke les jetons. Utilisez des requêtes SQL pour rechercher dans l'index inversé.
Exemple de cas d'utilisation pour la recherche en texte intégral
Pour comprendre la recherche en texte intégral, examinons une application utilise une base de données pour stocker les chansons de chaque chanteur. Chaque ligne correspond à une chanson. Chaque chanson contient des colonnes telles que le titre, les paroles, le chanteur et l'album. L'application utilise la recherche en texte intégral pour permettre à un utilisateur de rechercher un titre à l'aide de requêtes en langage naturel :
- La recherche est compatible avec les requêtes qui utilisent l'opérateur
OR
, commePrince OR Camille
. Les applications peuvent transmettre directement la saisie de l'utilisateur final à partir du champ de recherche dans la fonction SQLSEARCH
(à l'aide de la syntaxe de requête). - Spanner utilise des index de recherche pour rechercher des documents correspondants dans différents domaines. Par exemple, une application peut envoyer une requête pour rechercher "cry" dans l'objet, "so cold" dans les paroles et "Prince" comme chanteur.
Autres utilisations des index de recherche
Les index de recherche ont de nombreuses utilisations en plus de la recherche de texte intégral, par exemple :
Indexation des éléments dans les colonnes d'un tableau Prenons l'exemple d'une application qui utilise une colonne de tableau pour stocker les balises associées à un élément. Avec les index de recherche, votre application peut rechercher efficacement les lignes contenant une balise spécifique. Pour en savoir plus, consultez la section Tokenisation de tableaux.
Rechercher des données qui se trouvent à l'intersection d'un ensemble de conditions de requête Par exemple, vous pouvez utiliser un ensemble arbitraire d'attributs (couleur, taille, marque, note, etc.) pour rechercher un produit dans un catalogue.
Utilisation de conditions de recherche numériques, seules ou combinées à des conditions de texte complet. Voici quelques exemples de cas où un indice de recherche est utile pour les recherches numériques :
- Lorsqu'il est associé à une application de texte intégral. Par exemple, pour rechercher un e-mail avec l'objet Image et d'une taille supérieure à 1 Mo.
- Lorsqu'il fait partie d'une intersection de conditions décrites précédemment.
Par exemple, pour trouver des produits où
color = "yellow" AND size = 14 AND rating >= 4.5
. - Lorsque vous recherchez l'intersection de colonnes numériques. Par exemple, considérons une table stockant les heures de début et de fin des événements. Réseau de Recherche
les index peuvent implémenter efficacement une requête qui recherche les événements
a eu lieu à un moment donné:
start_time <= @p AND end_time > @p
.
Pour en savoir plus, consultez Indices numériques :
Étapes de la recherche en texte intégral
Dans Spanner, la recherche en texte intégral nécessite les étapes suivantes:
- Tokenisez un document à l'aide des fonctions de tokenisation Spanner, telles que
TOKENIZE_SUBSTRING
. Pour en savoir plus, consultez Tokenisation : - Créez un index de recherche destiné à contenir les jetons à l'aide de la méthode
CREATE SEARCH INDEX
instruction LDD. Pour en savoir plus, consultez Rechercher dans les index. - Interroger des documents dans l'index de recherche à l'aide de Spanner
SEARCH
. Pour en savoir plus, consultez la section Présentation des requêtes. - Classer les résultats de la requête à l'aide de Spanner
SCORE
. Pour en savoir plus, consultez Classer les résultats de recherche.
Limites
- La recherche en texte intégral n'est pas compatible avec Assured Workloads.
Tarifs
Aucuns frais supplémentaires ne sont facturés par Spanner lorsque vous utilisez la recherche en texte intégral, bien que l'implémentation de cette fonctionnalité augmente les coûts en raison de la nécessité de ressources de calcul et de stockage supplémentaires.
Pour en savoir plus, consultez la page Tarifs de Spanner.
Étape suivante
- Découvrez la tokenisation et les tokenizers Spanner.
- En savoir plus sur les index de recherche
- En savoir plus sur les requêtes de recherche en texte intégral