Les recherches populaires et les suggestions s'affichent à proximité de la zone de recherche et orientent les utilisateurs vers des requêtes pertinentes avant qu'ils n'aient fini de saisir leur texte. Pour les opérateurs, elles mettent en évidence les tendances d'intérêt et offrent des opportunités pour influencer le comportement de recherche grâce à une stratégie opérationnelle.
Fonctionnement
OpenSearch génère des recommandations de recherches populaires et de suggestions via un pipeline en trois étapes :
Collecte — Le système extrait les requêtes de recherche des journaux historiques. Seules les requêtes soumises avec le paramètre
raw_querysont comptabilisées. La valeurraw_querydoit correspondre à une requête unique, non répétée, qui renvoie des résultats.Classement — Les requêtes sont classées par fréquence. L'interface de recommandation utilise par défaut les données des 14 derniers jours. Une fois les modèles créés, le système les réentraîne automatiquement chaque jour.
Diffusion — Appelez l'API ou le SDK pour récupérer les recommandations classées. Par défaut, 10 recherches populaires et 3 suggestions sont renvoyées par requête.
L'interface de recommandation des recherches populaires et la liste des recherches populaires dans la console utilisent des périmètres de données différents. L'interface de recommandation couvre uniquement les 14 derniers jours et seulement les requêtes raw_query ; la liste de la console inclut les requêtes de l'index par défaut et ne filtre pas les requêtes sans résultat.
Concepts clés
Modèle de recherche populaire — Classe les requêtes par popularité et les renvoie sous forme de liste. Utilisez ce modèle pour afficher les recherches tendance à proximité de la zone de recherche.
Modèle de suggestion — Renvoie des compléments de requête au fur et à mesure que les utilisateurs saisissent leur texte. Utilisez ce modèle pour alimenter les suggestions déroulantes dans la zone de recherche.
Ces deux types de modèles sont entraînés à partir des mêmes données raw_query. Vous pouvez créer jusqu'à trois modèles de recherche populaire ou de suggestion par application.
Prérequis
Avant de commencer, assurez-vous que :
Les requêtes de recherche de votre application incluent le paramètre
raw_queryavec les requêtes réelles des utilisateursIl existe au moins quelques requêtes de recherche historiques avec des valeurs
raw_querydans le système
Si aucune requête de recherche historique ne contient le paramètre raw_query, l'entraînement du modèle échouera.
Créer un modèle de recherche populaire ou de suggestion
Créer un modèle dans la console
Connectez-vous à la console OpenSearch. Dans le volet de navigation de gauche, accédez à Search Algorithm Center > Search Guidance, puis cliquez sur Top Searches and Hints.
-
Cliquez sur Create.

-
Configurez les paramètres suivants :
Paramètre Description Model name Un nom composé de lettres, de chiffres et de traits de soulignement ( _). Le nom ne peut pas être composé uniquement de chiffres et ne doit pas dépasser 30 caractères.Model type Sélectionnez Top Search Model ou Hint Model. Filter condition (Facultatif) Restreint les requêtes de recherche historiques utilisées pour l'entraînement. Format : [parameter][operator][value]. Paramètres pris en charge :biz_typeetuser_id. Opérateurs pris en charge :<,>,<=,>=,=,!=. Séparez plusieurs conditions par des virgules — toutes les conditions sont appliquées avec une logique ET. Exemple :user_id=1,biz_type=1.
-
Recherchez le modèle dont le statut est Pending Training et cliquez sur Train dans la colonne Actions.

-
Une fois l'entraînement terminé, prévisualisez les résultats :
Aperçu des recherches populaires : Cliquez sur Preview Effects pour voir jusqu'à 10 recherches populaires recommandées par page, sur un maximum de 20 pages.

Aperçu des suggestions : Cliquez sur Preview Effects pour voir jusqu'à 30 suggestions recommandées, une par page.

Créer un modèle à l'aide de l'API ou du SDK
Lorsque vous créez un modèle via l'API, le système lance immédiatement l'entraînement du modèle dès réception de la demande de création.
Ajoutez le SDK Management and Control à votre projet :
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-opensearch</artifactId>
<version>0.7.0</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.0</version>
</dependency>
L'exemple suivant crée un modèle de recherche populaire. Définissez type sur "hot" pour un modèle de recherche populaire ou sur "hint" pour un modèle de suggestion.
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.FormatType;
import com.aliyuncs.http.HttpResponse;
import com.aliyuncs.opensearch.model.v20171225.*;
import com.aliyuncs.profile.DefaultProfile;
public class CreateModel {
public static void main(String[] args) {
DefaultProfile profile = DefaultProfile.getProfile(
"cn-beijing",
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
);
IAcsClient client = new DefaultAcsClient(profile);
CreateModelRequest request = new CreateModelRequest();
request.setAppGroupIdentity("app_name"); // Replace with your application name
// type: "hot" = top search model, "hint" = hint model
// name: letters, digits, underscores only; max 30 characters
String content = "{\"type\": \"hot\", \"name\": \"model_name\"}";
request.setHttpContent(content.getBytes(), "UTF-8", FormatType.JSON);
try {
HttpResponse response = client.doAction(request);
System.out.println(response.getHttpContentString());
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}
}
Récupérer les recherches populaires et les suggestions
Une fois l'entraînement terminé, appelez l'API ou le SDK pour obtenir les recommandations. Il n'existe aucune opération API pour vérifier le statut de l'entraînement — interrogez le point de terminaison des résultats pour déterminer quand les recommandations deviennent disponibles.
Ajoutez le SDK Traffic à votre projet :
<dependency>
<groupId>com.aliyun.opensearch</groupId>
<artifactId>aliyun-sdk-opensearch</artifactId>
<version>3.5.0</version>
</dependency>
L'exemple suivant récupère les recherches populaires. Utilisez le même chemin d'API pour les suggestions en définissant le model_name approprié.
import java.util.HashMap;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.aliyun.opensearch.OpenSearchClient;
import com.aliyun.opensearch.sdk.generated.OpenSearch;
import com.aliyun.opensearch.sdk.generated.commons.OpenSearchClientException;
public class Hot {
private static final String accesskey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
private static final String secret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
private static final String host = "<endpoint>"; // e.g., http://opensearch-cn-hangzhou.aliyuncs.com
private static final String appName = "<your-app-name>";
// API path for top searches
private static final String HOT_API_PATH = "/apps/{app_name}/actions/hot";
public static void main(String[] args) {
OpenSearch openSearch = new OpenSearch(accesskey, secret, host);
OpenSearchClient client = new OpenSearchClient(openSearch);
String requestPath = HOT_API_PATH.replace("{app_name}", appName);
Map<String, String> params = new HashMap<>();
params.put("model_name", "<your-model-name>"); // The model name you created
params.put("hit", "20"); // Number of results to return (max 30 for top searches, 10 for hints)
try {
String response = client.call(requestPath, params, OpenSearchClient.METHOD_GET);
System.out.println(JSON.toJSONString(response));
} catch (OpenSearchClientException e) {
e.printStackTrace();
}
}
}
Limites des valeurs de retour :
| Type de modèle | Résultats par défaut | **Maximum (paramètre hit )** |
|---|---|---|
| Recherche populaire | 10 | 30 |
| Suggestion | 3 | 10 |
Pour obtenir le classement des mots-clés populaires, appelez l'opération ListStatisticLogs.
Gérer les modèles
Liste des modèles
La page Top Searches and Hints répertorie tous les modèles avec leur nom, type, date de création, statut, heure de début du dernier entraînement et statut de la dernière version. Définissez un modèle comme modèle par défaut — lorsqu'aucun model_name n'est spécifié dans une requête, le modèle par défaut est utilisé.

Détails du modèle
Cliquez sur un nom de modèle pour ouvrir sa page de détails. La section Basic Information affiche le statut actuel du modèle et les horodatages d'entraînement. La section Training History répertorie chaque session d'entraînement avec sa version, son statut, son heure de début et son heure de fin.
Dépanner un entraînement ayant échoué
Sur la page de détails du modèle, placez le curseur sur Exception Report pour voir la raison de l'échec. Placez le curseur sur View Conditions for Integrity Level Upgrade pour voir les critères que le modèle doit respecter pour atteindre un niveau d'intégrité supérieur.

Configurer les listes noires et les listes d'autorisation
Dans la section Configuration Information, cliquez sur Configure pour configurer une liste noire ou une liste d'autorisation pour le modèle. Pour plus de détails, consultez Blacklists and whitelists.

Ajuster la taille de la liste des recherches populaires
Par défaut, la liste des recherches populaires affiche jusqu'à 10 000 entrées. Définissez une limite personnalisée (minimum : 100) en fonction de vos besoins métier.
Optimiser la qualité du modèle
Connecter les données comportementales des utilisateurs
Les recherches populaires et les suggestions générées à partir des journaux de recherche bruts constituent un bon point de départ, mais la connexion des données comportementales des utilisateurs améliore la qualité des recommandations au fil du temps.
Incluez les paramètres suivants dans les requêtes de recherche pour activer le suivi comportemental :
from_request_id— Définissez cette valeur sur lerequest_idrenvoyé lorsqu'un utilisateur clique sur une recherche populaire ou une suggestion. Cela lie la recherche suivante à la recommandation qui l'a déclenchée.user_id— Active les métriques de visiteurs uniques (UV) dans les rapports d'exploitation métier.
Fonctionnement de bout en bout :
Un utilisateur voit une liste de recherches populaires renvoyée par l'API. La réponse inclut un
request_id.L'utilisateur clique sur une recherche populaire, ce qui déclenche une nouvelle requête de recherche.
Définissez
from_request_iddans cette requête de recherche sur lerequest_idde l'étape 1.Si l'utilisateur parcourt les résultats page par page, définissez également
from_request_iddans chaque requête de changement de page — chaque vue de page compte comme une vue de page (PV) indépendante.
Une fois ces données connectées, les rapports d'exploitation métier afficheront :
Les vues de page (PV) et les visiteurs uniques (UV) des recherches guidées par les recherches populaires et les suggestions
Le taux de résultats nuls pour les recherches guidées
Le taux de clics sur les recommandations
Les tendances d'intérêt des utilisateurs pour la planification opérationnelle
Afficher les rapports d'exploitation métier
Dans la console OpenSearch, accédez à Report Statistics pour afficher les métriques de performance.
-
Rapport des recherches populaires : Accédez à Report Statistics > Top Search Report.

-
Rapport des suggestions : Accédez à Report Statistics > Hint Report.

Pour une description complète des métriques des rapports, consultez Top search report et Hint report.
Limites
| Limite | Valeur |
|---|---|
| Modèles de recherche populaire ou de suggestion par application (cumulés) | 3 |
| Taille de la liste des recherches populaires (par défaut) | 10 000 entrées |
| Taille de la liste des recherches populaires (minimum) | 100 entrées |
| Fenêtre de données d'entraînement | 14 derniers jours (par défaut) ; jusqu'à 6 mois |
| Planification de l'entraînement | Quotidien (automatique) |
| Requêtes éligibles pour l'entraînement | raw_query uniquement ; doivent renvoyer des résultats ; ne doivent pas être répétées |
Étapes suivantes
Initiate search requests — Découvrez comment inclure
raw_query,from_request_idetuser_iddans les requêtes de recherche.Query top searches and hints — Référence API complète pour les points de terminaison de recommandation.
Blacklists and whitelists — Filtrez certaines requêtes dans ou hors des recommandations.