Construisez un système de recherche par mots-clés pour les catalogues de produits, prenant en charge la recherche multi-attributs, le filtrage par catégorie, l'analyse des requêtes et le classement par pertinence. À l'issue de ce tutoriel, vous disposerez d'un prototype de recherche fonctionnel capable d'accepter des requêtes par mots-clés, de filtrer les résultats par catégorie et par prix, de corriger les fautes de frappe dans les requêtes et de classer les résultats selon leur pertinence.

Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Un compte Alibaba Cloud associé à une paire AccessKey. L'application Open Search nécessite une paire AccessKey pour l'authentification.
(Facultatif) Une paire AccessKey pour un utilisateur RAM, si vous prévoyez de déléguer l'accès. Pour plus d'informations, consultez les Règles d'autorisation d'accès.
(Facultatif) Une instance ApsaraDB RDS for MySQL contenant les données produit, si vous envisagez d'utiliser une base de données comme source de données.
Étape 1 : Créer une application
La recherche e-commerce implique plusieurs tables liées, telles qu'une table de produits et une table de prix. Sélectionnez une application avancée qui prend en charge la jointure de plusieurs tables.
Connectez-vous à la console Open Search. Dans le volet de navigation de gauche, cliquez sur Instance Management. Sur la page Instance Management, cliquez sur Create Instance. Dans le coin supérieur gauche de la page, définissez l'édition sur OpenSearch Industry Algorithm Edition, puis sélectionnez la région cible dans la barre de navigation supérieure.
Sélectionnez le type d'application. Choisissez une application avancée qui prend en charge la jointure de plusieurs tables. Pour comparer les types d'applications, consultez la rubrique Comparaison entre les applications standard et les applications avancées.
-
Configurez les paramètres de l'application.
Ce tutoriel utilise les valeurs de paramètres suivantes :
Product Edition : Industry Algorithm Edition
Product Type : pay-as-you-go
Region and Zone : China (Hangzhou)
Industry Type : E-commerce Industry
Cluster Preferences : Exclusive Cluster - General-purpose
Parameter Description | Product TypeInstance Management.
Vous pouvez également charger les données via les API ou les SDK Open Search. Pour plus d'informations, consultez la section Présentation des API et Présentation des SDK.
Étape 4 : Tester les requêtes de recherche
Une fois le chargement des données terminé, effectuez un test de recherche. La console Open Search propose une page de test intégrée. Pour un accès programmatique, utilisez les API ou les SDK Open Search.
Pour obtenir des détails sur la syntaxe de recherche, reportez-vous aux sections Envoyer des requêtes de recherche et clause query.
Sur la page de test de recherche, sélectionnez l'application
test_han_indexeset l'environnement d'application hors ligne. Saisissezquery=title:'裙子'et définissez la clauseconfigsurstart:0.Étape 5 : Configurer l'analyse des requêtes
L'analyse des requêtes traite ces dernières avant la récupération afin d'améliorer la qualité des résultats. Les requêtes de longue traîne peuvent renvoyer peu de résultats, tandis que celles comportant des fautes d'orthographe ou du pinyin chinois peuvent n'en retourner aucun. L'analyse des requêtes permet de résoudre ces problèmes. Pour en savoir plus, consultez les sections Analyse des requêtes et Effectuer des recherches basées sur la pertinence.
Open Search propose les fonctionnalités d'analyse des requêtes suivantes :
Fonctionnalité Description Exemple Instance Management Filtre les mots dénués de sens, tels que la ponctuation et les particules modales. Requête « Running Man ! » : le point d'exclamation est filtré. Create Instance Corrige automatiquement les fautes d'orthographe avérées. En cas d'erreur possible, la requête d'origine est conservée. « Alipapa » est corrigé en « Alibaba ». Product Type Évalue l'importance des termes et leur attribue des pondérations. Les termes peu importants peuvent être exclus de la récupération. Requête « Open Search is good or not » : récupère les documents contenant « Open Search ». subscription Étend les requêtes avec des synonymes issus de la bibliothèque de synonymes intégrée et des modèles sémantiques. Peut être combiné avec la pondération des mots pour de meilleurs résultats. « KFC » permet également de récupérer « Kentucky Fried Chicken ». pay-as-you-go Identifie les entités sémantiques dans les requêtes et attribue des priorités par catégorie. « Nike Slim Dress » : « Nike » (marque, priorité moyenne), « Slim » (style, priorité faible), « Dress » (catégorie, priorité élevée). Exemple : Configurer la correction orthographique
Les étapes suivantes expliquent comment configurer une règle de correction orthographique.
Créer un dictionnaire d'intervention
Dans la console Open Search, accédez à Region and Zone > Application Name. Cliquez sur Application Type.
Cliquez sur Cluster Preferences. Dans le panneau Storage Capacity and Computing Resources, saisissez un nom de dictionnaire, définissez le paramètre Manually define an application schema sur Use a template to define an application schema, puis cliquez sur Upload a file to define an application schema. Dans cet exemple, définissez le champ Name sur
dic_error.Dans la liste des dictionnaires, repérez votre dictionnaire et cliquez sur Use a data source to define an application schema. La page de gestion des entrées affiche les détails du dictionnaire, notamment son nom, son type, sa date de création et le nombre d'entrées. Pour ajouter des entrées, cliquez sur Add Intervention Entry ou Add Entries in Batches.
-
Cliquez sur Completed pour créer une entrée.
Dans la boîte de dialogue Add Intervention Entry, spécifiez les informations suivantes :
Query : le terme de recherche à corriger, par exemple
连衣群Corrected Word : le terme correct, par exemple
连衣裙Intervention Type : sélectionnez Add ou Block
Cliquez sur Application Details. L'entrée apparaît dans la liste des entrées d'intervention. Cette liste affiche les colonnes Query, Corrected Word, Intervention Type, Modified At, Status et Actions, et propose une zone de recherche Enter Query pour filtrer les entrées. Dans cet exemple, la requête incorrecte
连衣群est corrigée en连衣裙, le type d'intervention est Add et le statut est Effective.
Créer une règle d'analyse des requêtes
Accédez à Application Details > Stop word. Cliquez sur Spelling correction.
Cliquez sur Word weight. Dans le panneau Synonym, définissez le paramètre Named entity recognition (NER) sur le dictionnaire de correction orthographique que vous avez créé (par exemple,
dic_error). Dans ce même panneau, saisisseztest_errorcomme nom de règle. Le nom peut contenir des chiffres, des lettres et des traits de soulignement (_), doit commencer par une lettre minuscule et ne pas dépasser 16 caractères. Définissez l'application cible surtest_han_indexesdans l'environnement d'application en ligne, définissez la portée de l'index sur title et le type d'industrie sur E-commerce, puis sélectionnez Spelling Correction dans la section des fonctionnalités. Sélectionnez System Built-in Dictionary comme source de dictionnaire, puis cliquez sur OK pour créer la règle.
Tester et appliquer la règle
Sur la page Search Algorithm Center, cliquez sur Retrieval Configuration dans la colonne Dictionary Management pour vérifier le comportement de correction. La liste des règles affiche le nom de l'analyse des requêtes
test_error, le type Custom, l'index cibletitle, l'industrie E-commerce et la fonctionnalité incluse Spelling Correction.-
Après vérification, cliquez sur Create et définissez la règle comme règle d'analyse des requêtes par défaut.
Sur la page de test de recherche, sélectionnez l'index, définissez le paramètre
qp=test_erroret saisissez la requêtetitle:'连衣群', qui contient une faute d'orthographe intentionnelle. Cliquez sur Search. La console affiche une invite indiquant que les résultats sont renvoyés pour连衣裙avec la possibilité de rechercher plutôt连衣群, la requête est automatiquement corrigée en(title:"连衣裙")et les produits correspondant à连衣裙sont renvoyés.Une fois la règle définie par défaut, le nom de l'analyse des requêtes dans la liste des règles devient
[Default]test_error, affiché en rouge car la règle n'est pas encore publiée, et la colonne Default indique Yes. Pour annuler cette opération, cliquez sur Cancel Default Rule dans la colonne Actions.
Étape 6 : Configurer les expressions de tri
Les expressions de tri déterminent le classement des résultats de recherche. Vous pouvez spécifier ces expressions dans la clause de requête pour ordonner les résultats. Open Search utilise une approche de classement en deux phases : le tri approximatif (première phase) réduit le nombre de candidats, tandis que le tri fin (deuxième phase) détermine l'ordre final.
Pour plus d'informations, consultez la rubrique Configurer les expressions de tri.
Créer une expression de tri approximatif
Dans la console Open Search, accédez à Create Query Analysis Dictionary > Dictionary Type pour ouvrir la page Spelling Correction.
-
Cliquez sur Save afin d'ajouter une expression de tri approximatif. Sélectionnez des champs représentatifs, tels que le score textuel et le score de pertinence temporelle. Le tri approximatif ayant un impact significatif sur les performances de recherche, choisissez les champs avec soin.
Lors de l'étape des informations de base, sélectionnez l'Target Application et son environnement, puis saisissez un Policy Name. Le nom doit comporter entre 1 et 30 caractères, commencer par une lettre et peut contenir des lettres majuscules, des lettres minuscules, des chiffres et des traits de soulignement (_). Définissez le paramètre Type sur Expression, puis cliquez sur Next.
Lors de l'étape de configuration du tri, définissez la valeur de Scoring Feature sur
static_bm250et celle de Weight sur1, puis cliquez sur Finish.
Créer une expression de tri fin
Ajoutez une expression de tri fin pour le calcul de la pertinence textuelle.
Sur la page des informations de base de l'assistant Create Policy, saisissez un Policy Name, définissez le champ Application Scope sur Fine Sort, configurez le paramètre Type sur Expression, puis cliquez sur Next pour accéder à l'étape de configuration du tri.
Dans l'éditeur d'expressions de tri, saisissez
text_relevance(title), puis cliquez sur Finish.Comparer les résultats de tri
Sur la page Manage Entries , comparez les résultats d'une requête standard avec ceux d'une requête appliquant l'expression de tri.
Sélectionnez l'index
test_han_indexeset définissez le type d'application sur Online Application. Saisissezquery=title:'裙子'et configurez la clauseconfigavec la valeurstart:0. La page affiche côte à côte les résultats de deux politiques de tri fin, ce qui vous permet de vérifier l'effet de votre configuration.Étape 7 : Ajouter des suggestions automatiques et la prédiction de catégorie
Suggestions automatiques
Les suggestions automatiques aident les utilisateurs à trouver plus rapidement leurs requêtes lors de la saisie, réduisant ainsi l'effort de saisie dans la recherche e-commerce. Pour obtenir des instructions de configuration, consultez la rubrique Suggestions automatiques.
Prédiction de catégorie
La prédiction de catégorie identifie la catégorie de produit la plus probablement ciblée par une requête de recherche. Pour obtenir des instructions de configuration, consultez la rubrique Prédiction de catégorie.
Étape 8 : Contrôler la diversité des résultats et le filtrage
Clauses distinctes
Lorsque plusieurs produits d'un même vendeur obtiennent des scores élevés, ils risquent de dominer la page de résultats. Les clauses distinctes imposent une diversité afin que les résultats incluent des produits provenant de plusieurs vendeurs. Pour plus d'informations, consultez la rubrique Clauses distinctes.
Clauses de filtrage
Les clauses de filtrage permettent aux utilisateurs de restreindre les résultats selon des plages d'attributs, telles que le prix. Pour plus d'informations, consultez la rubrique Clauses de filtrage.
Le code Java suivant illustre le filtrage par plage de prix :
if(!lowPrice.equals("")){ queryElement.addFilter("price>=" + lowPrice); } if(!highPrice.equals("")){ queryElement.addFilter("price<=" + highPrice); }Ce que vous avez construit
Une fois ces étapes terminées, votre prototype de recherche e-commerce prend en charge les fonctionnalités suivantes :
Recherche par mots-clés multi-attributs sur des tables jointes
Analyse des requêtes avec correction orthographique, suppression des mots vides, gestion des synonymes et reconnaissance d'entités nommées
Classement de pertinence en deux phases avec expressions de tri approximatif et de tri fin
Suggestions automatiques et prédiction de catégorie
Diversité des résultats grâce aux clauses distinctes et filtrage par prix via les clauses de filtrage
Open Search fournit des API et des SDK de recherche qui vous permettent d'intégrer ces capacités à votre application sans avoir à construire ni maintenir une infrastructure de recherche personnalisée.
Étapes suivantes
Vue d'ensemble des API : intégrez la recherche à votre application
Vue d'ensemble des SDK : utilisez les SDK spécifiques au langage
Analyse des requêtes : explorez d'autres fonctionnalités de traitement des requêtes
Configurer les expressions de tri : affinez le classement des résultats