La recherche de documents est une recherche qui fonctionne principalement sur du texte libre non structuré (pas seulement des documents). Que vous recherchiez une page Web, un produit ou que vous travailliez avec du contenu sélectionné, vous utilisez un moteur de recherche pour le faire. Vous accédez à une page Web et vous saisissez le texte dans la zone de texte de recherche. Vous cliquez sur le bouton de recherche pour obtenir (peut-être) des éléments pertinents qui correspondent à ce que vous recherchez.

Les moteurs de recherche sont issus de la technologie de base de données : ils stockent les données et traitent les requêtes en se basant sur ces données. Les bases de données traditionnelles fonctionnent principalement avec le contenu structuré : les données sont organisées en tableaux, en colonnes et en schémas intégrés. La tâche de la base de données est de récupérer toutes les lignes de données en se basant sur les requêtes qui correspondent aux valeurs dans les colonnes. Les moteurs de recherche fonctionnent avec des données structurées (documents), qui contiennent à la fois des métadonnées et des blocs volumineux de texte non structuré (texte libre). Ils utilisent des règles linguistiques pour diviser ces blocs de texte volumineux en termes qui correspondent à la recherche. Enfin, ils présentent une capacité de classement intégrée pour classer les résultats et afficher les meilleurs en premier. Alors que les bases de données relationnelles et NoSQL récupèrent tous les résultats, les moteurs de recherche récupèrent les meilleurs résultats.

Les applications de moteurs de recherche se divisent en trois grandes catégories : la recherche de documents, qui fonctionne principalement sur le texte libre non structuré, la recherche e-commerce, qui fonctionne sur une combinaison de données structurées et non structurées, et le déchargement des requêtes, qui fonctionne principalement sur les données structurées.

La recherche de documents fonctionne-t-elle avec des métadonnées ?

Dans la recherche de documents, vous recherchez le document principal, qui peut être aussi petit qu'un paragraphe et aussi grand que des milliers de pages. Les documents comprennent une variété d'autres champs, notamment des champs de texte non structurés (titre et résumé), des champs semi-structurés (auteur) et des champs structurés (date de publication, groupe d'origine, catégorie) - les métadonnées. Le moteur de recherche traite un mélange de texte et de métadonnées dans les requêtes des utilisateurs.

Les principaux défis de la recherche documentaire sont de deux ordres : la préparation et l'ingestion des données, et la pertinence de la recherche.

Dans les cas d'utilisation de la recherche de documents, l'ensemble des documents (corpus) provient de contenus générés par les utilisateurs ou d'autres contenus non traités. Ce contenu contient généralement des fautes de frappe ou autres erreurs, des répétitions et des données absurdes. Avant de charger ces données dans un moteur de recherche, vous devez les trier, les nettoyer et les normaliser. Une fois les données préparées, vous devez les charger dans le moteur (en appelant les API d'ingestion). Enfin, vous avez besoin d'un processus pour mettre à jour les documents au fur et à mesure qu'ils changent.

La valeur fondamentale de la recherche de documents est de récupérer les documents qui sont pertinents pour la requête de l'utilisateur - pertinence de la recherche. Pendant la recherche, le moteur de recherche note et trie tous les documents correspondants à l'aide d'une mesure statistique (BM25). BM25 utilise le caractère unique du terme recherché croisé avec son nombre dans les documents correspondants. Plus la requête correspond à un grand nombre de termes uniques, plus son score est élevé. Vous devez ajuster la fonction de notation pour votre ensemble de données particulier ; les techniques d'apprentissage machine learning(ML) vous aident à améliorer votre classement. La recherche est aussi bonne que la pertinence des documents qu'elle récupère, et vous voulez le meilleur.

Autres cas d'utilisation relatifs à la recherche

Recherche dans le domaine de l'e-commerce 

Vous allez sur un moteur de commerce électronique pour trouver et acheter des produits à partir d'un catalogue de produits disponibles. Ces produits comprennent de nombreux champs de métadonnées - taille, couleur, marque, et ainsi de suite - ainsi que des champs plus longs comme titre, description du produit, et commentaires. La tâche principale du moteur est de trouver les résultats les plus pertinents qui génère des revenus. Les concepteurs de sites utilisent de nombreux outils pour construire une excellente fonction de pertinence, qu'il s'agisse de valeurs numériques intégrées ou de modèles ML basés sur le comportement des utilisateurs.

Pour améliorer l'expérience de l'utilisateur final, les sites de commerce électronique ajoutent fréquemment la recherche à facettes. Le moteur fournit un décompte des valeurs de différents champs (taille, couleur, etc.) - et l'interface utilisateur fournit à l'utilisateur une liste cliquable qu'il utilise pour réduire les résultats.

Certains types de recherche e-commerce dépendent fortement de la personnalisation et des recommandations. Si un client recherche des « robes », le moteur de recherche devrait trouver des robes susceptibles de l'intéresser, même si la requête elle-même est très ouverte. Les mesures de similarité comme le k plus proches voisins (k-NN) y contribuent.

Recherche de l’ensemble de données préparées

Recherche dans un ensemble de données préparées, comme un dépôt de documents d'entreprise (données d'essais cliniques, mémoires juridiques, biens immobiliers, etc.). Les moteurs de recherche contiennent des règles linguistiques et d'autres caractéristiques propres à la langue qui les aident à décomposer les grands blocs de texte en composants termes (mots d'un champ ou d'un grand bloc de texte) pour les faire correspondre. Son riche langage d'interrogation permet de rechercher dans ces grands blocs de texte des combinaisons de termes, comme « robe longue sans manches ». Mais le moteur ne récupère pas tout ce qui correspond : il utilise des scores de pertinence pour classer et trier les documents et ne retourner que les meilleures correspondances.

Décharger des requêtes

Les moteurs de recherche contiennent des structures de données spécialisées pour faciliter la recherche à haut volume et à faible temps de latence. La plus importante de ces structures est l'index inversé, qui associe des termes individuels à une liste de documents contenant ces termes. Grâce à ces structures de données, les moteurs de recherche sont plus performants que les bases de données relationnelles pour le traitement des requêtes. La compensation est que les moteurs de recherche ne sont pas relationnels. Il est courant de voir un tandem de base de données relationnelle et un moteur de recherche. Vous utilisez la base de données relationnelle pour servir les données de l'application, et un moteur de recherche pour fournir une recherche pertinente et à faible latence sur ces données.

La création d'une expérience de recherche riche et agréable nécessite de nombreuses fonctions. Les développeurs intègrent une solution de recherche, créent une interface de recherche et comprennent comment structurer les données pour obtenir les meilleurs résultats de recherche. Les managers de produits fournissent des exigences pour la structure des métadonnées et les expériences utilisateur de l'interface de recherche. Les spécialistes des données recueillent les données sources, suivent le comportement des utilisateurs et travaillent avec eux. Les dirigeants définissent les KPI de l'entreprise qui guident les équipes de produits et de développement dans la réalisation des objectifs commerciaux du moteur.

Les moteurs de recherche ont été optimisés pour faire correspondre les termes. La recherche de « canapé 8 pieds » devrait vous donner des résultats concernant des canapés 8 pieds, et ce en faisant correspondre « 8 », « pied » et « canapé ». C'est la recherche par mots-clés. Dans de nombreux cas, les chercheurs ne connaissent pas les termes exacts qu'ils recherchent et veulent effectuer une recherche par sens. Il s'agit de la recherche sémantique, qui se situe à la frontière des technologies de recherche et de ML. Avec la recherche sémantique, vous utilisez des requêtes telles que « place confortable pour s'asseoir au coin du feu » pour retrouver des éléments tels qu'un canapé de 8 pieds.

La recherche sémantique nécessite des techniques de ML. Vous devez construire un espace vectoriel d'éléments et de requêtes, puis utiliser des calculs de similarité vectorielle pour trouver des éléments qui sont proches dans cet espace. Avec la recherche vectorielle, un document n'a pas besoin de mots ou de synonymes en commun avec une requête pour être pertinent. Par exemple, une recherche sur « l'entretien de la bicyclette » peut correspondre à un document sur « la lubrification du dérailleur », car l'algorithme ML sait que « la lubrification du dérailleur » apparaît souvent à proximité des discussions sur l'entretien de la bicyclette.

Comment améliorer vos résultats de recherche ?

Une recherche efficace de documents et dans le domaine de l'e-commerce se base avant tout sur la pertinence des résultats de la recherche : répondent-ils aux besoins du chercheur ? Les moteurs de recherche tentent de placer les meilleurs résultats en tête de liste en utilisant diverses techniques. C'est ce qu'on appelle le classement par pertinence. Les bases de données renvoient tout ce qui correspond, et les moteurs de recherche sont optimisés pour classer les éléments pertinents.

  • Votre recherche peut couvrir plusieurs champs avec une pondération différentielle. Par exemple, si vous effectuez une recherche dans une base de données de films, vous pouvez couvrir des champs tels que titre, directeur, et acteur, et donner plus de poids aux correspondances titre qu'aux correspondances acteur.
  • Envisagez d'ajuster vos résultats de recherche en fonction de la nouveauté. Ajoutez un champ de données sur les rejets à votre index et une fonction de décroissance exponentielle basée sur cette date à votre fonction de score.
  • Envisagez d'ajouter des facettes ou des filtres à vos résultats de recherche pour aider vos utilisateurs à explorer des éléments spécifiques. De nombreux systèmes de recherche de documents prennent en charge la recherche à facettes des métadonnées, généralement présentées sous forme de catégories sur le côté gauche de la page de résultats de recherche.
  • Envisagez d'ajouter des synonymes. Les synonymes peuvent aider vos utilisateurs finaux à trouver les résultats qu'ils recherchent. Dans le domaine de l'habillement, un tee est un T-shirt ou un teeshirt. Vos utilisateurs finaux doivent trouver les mêmes résultats, qu'ils recherchent « tee » ou « t-shirt ». L'ajout de synonymes peut donner ces résultats.

La recherche de documents s'applique à de nombreuses applications différentes.

  • Les sites de e-commerce utilisent la recherche de documents pour retrouver les produits que leurs utilisateurs souhaitent acheter.
  • Les sites de photographie utilisent la recherche de documents pour trouver des photos sur la base de métadonnées telles que titre et description, ou même sur la base de vecteurs d'image correspondants.
  • Les utilisateurs légaux utilisent la recherche de documents pour trouver la jurisprudence pertinente.
  • Les médecins utilisent la recherche de documents pour trouver des médicaments adaptés à l'état de leurs patients.
  • Les solutions de gestion de la relation client (CRM) utilisent la recherche de documents pour retrouver des notes, des interactions et des clients à cibler.

Lorsque vous avez besoin de trouver quelque chose, utilisez un moteur de recherche !

Recherche de documents AWS : étapes suivantes

Consulter d'autres ressources liées aux produits
Voir les offres gratuites de services de bases de données dans le cloud 
Créer un compte gratuit

Obtenez un accès instantané à l'offre gratuite AWS. 

S'inscrire 
Commencer à créer dans la console

Commencez à créer dans la console de gestion AWS.

Se connecter