L'évaluation de l'intention basée sur les mots-clés des requêtes de recherche détermine si les résultats correspondent aux attentes. La fonctionnalité d'analyse des requêtes permet de comprendre l'intention de recherche dans OpenSearch. Elle analyse intelligemment la requête, la réécrit, puis la soumet au moteur de recherche. Ce dernier récupère et trie ensuite les données en fonction de cette requête. Cette rubrique décrit les fonctionnalités de base disponibles pour l'analyse des requêtes.
Filtrage des mots vides
Le système filtre les mots dénués de sens présents dans les requêtes de recherche. Il s'agit de termes apparaissant fréquemment mais n'influençant pas les résultats, tels que la ponctuation ou les particules modales.
Correction orthographique
Si les requêtes saisies contiennent des fautes d'orthographe, les résultats risquent de ne pas correspondre à vos attentes, voire d'être absents. Pour résoudre ce problème, OpenSearch vérifie l'orthographe des requêtes entrantes. La fonctionnalité de correction orthographique identifie et corrige les erreurs potentielles, générant ainsi une nouvelle requête corrigée. OpenSearch décide ensuite d'utiliser ou non cette requête corrigée pour la recherche, en fonction de la fiabilité de la correction.
Analyse du poids des termes
Cette fonctionnalité évalue l'importance de chaque terme dans les requêtes de recherche et quantifie cette importance sous forme de poids. OpenSearch peut ignorer les termes peu importants lors de la récupération des documents, ce qui augmente le nombre de résultats trouvés. En effet, si des termes à faible importance sont inclus dans le processus de recherche, le nombre de documents récupérés risque d'être limité.
Configuration des synonymes
Les requêtes saisies peuvent posséder des synonymes au sens identique. Par exemple, une recherche sur « Apple phone » peut également renvoyer du contenu lié à l'iPhone. La configuration des synonymes dans OpenSearch permet de récupérer des documents basés sur ces équivalents sémantiques, augmentant ainsi le volume de résultats pertinents.
Reconnaissance d'entités nommées (NER)
La fonctionnalité NER (Named Entity Recognition) identifie chaque entité sémantique d'une requête après analyse et l'assigne à une catégorie spécifique. Les catégories jugées moins prioritaires peuvent être ignorées durant la recherche. Prenons l'exemple de la requête « Nike Slim Dress ». Après traitement NER, « Nike » est reconnu comme une marque (priorité moyenne), « Slim » comme un élément de style (priorité faible) et « Dress » comme une catégorie de produit (priorité élevée).
Prédiction de catégorie
Cette fonctionnalité prédit la pertinence entre l'intention de la requête et les catégories métier. Vous pouvez ensuite utiliser des expressions de tri pour ajuster l'ordre des résultats. Par exemple, pour la requête « mobile phone », les résultats incluent des téléphones et des coques. La prédiction indique une pertinence plus forte avec la catégorie « produits numériques » qu'avec celle des « accessoires numériques ». Vous pouvez alors prioriser les résultats de la première catégorie via des expressions de tri appropriées.
Intégration de mots (Word Embedding)
L'intégration de mots convertit le texte d'une requête en vecteur grâce à un modèle vectoriel, puis utilise la fonctionnalité de recherche multimodale pour renvoyer les résultats textuels. Par exemple, la requête « OpenSearch » est transformée en [0,1,0,3,0,5] selon le modèle vectoriel de l'analyseur d'index sélectionné. Les résultats sont ensuite obtenus via des index vectoriels. Vous pouvez configurer des politiques de recherche lors de la mise en place de la recherche multimodale.
Plage d'index
Sur la page Recall Configuration, cliquez sur l'onglet Query Analysis Configuration, puis sur Add Rule. Dans la boîte de dialogue qui s'affiche, configurez les paramètres suivants :
Rule Name : saisissez un nom personnalisé pour la règle, par exemple
default.Index Range : sélectionnez une plage d'index.
Industry Type : choisissez un type d'industrie, par exemple General.
Query Rewriting Policy : sélectionnez AND ou OR.
Feature Selection : activez Spelling Correction, Term Weight, Synonym (vous pouvez configurer un dictionnaire d'intervention) ou Category Prediction (vous pouvez sélectionner un modèle de prédiction de catégorie).
Dictionary Usage : sélectionnez Built-in System Dictionary.
Une fois la configuration terminée, cliquez sur OK.
Vous pouvez spécifier une plage d'index pour les types d'analyseurs suivants : analyseur général pour le texte chinois, analyseur pour le texte chinois du secteur e-commerce, analyseur pour le texte informatique, analyseur pour le texte du secteur du jeu vidéo et analyseur pour le texte du secteur de l'éducation.
Vous pouvez modifier les méthodes d'analyse des index dans le schéma de l'application lors de la configuration ou de la modification d'une application hors ligne.
Réécriture des requêtes de recherche
La fonctionnalité de réécriture des requêtes utilise les opérateurs logiques AND ou OR pour définir la méthode de récupération des résultats en fonction des termes de la requête. Notez que l'analyse du poids des termes et la NER influencent les résultats d'analyse des termes utilisés pour la récupération des documents. Par exemple, la requête « Nike sports shoes » est divisée en trois termes : Nike, sports et shoes.
-
Si l'opérateur logique AND est utilisé, la requête est réécrite sous la forme suivante :
(default:'Nike' AND default:'sports' AND default:'shoes') -
Si l'opérateur logique OR est utilisé, la requête est réécrite sous la forme suivante :
(default:'Nike' OR default:'sports' OR default:'shoes')
Activation de la réécriture des requêtes de recherche Lors de la création ou de la modification d'une règle d'analyse des requêtes, sélectionnez AND ou OR dans la liste déroulante Search Query Rewriting.

Si une requête est complexe, elle peut être réécrite deux fois selon les règles suivantes :
Si des données sont récupérées lors de la première réécriture, aucune seconde réécriture n'est effectuée.
Si aucune donnée n'est récupérée lors de la première réécriture, une seconde réécriture est appliquée afin d'élargir les résultats.
Politique de re-recherche
Après configuration de l'analyse des requêtes, si aucune donnée n'est trouvée, la requête est réécrite pour déclencher une re-recherche. Lors de l'envoi d'une demande de recherche, utilisez le paramètre disable pour activer ou désactiver cette fonctionnalité, et le paramètre re_search pour configurer la politique associée. Pour plus d'informations, consultez Envoyer des demandes de recherche.
Exemple
disable=re_search # The re-search feature is disabled.
re_search=strategy:threshold,params:total_hits#6 # If the total number of hits is less than six, a re-search is performed.
Une fois la fonctionnalité configurée, ajoutez fetch=qp:profile à votre demande de recherche pour vérifier si les résultats proviennent d'une re-recherche.
Par exemple, si la valeur du paramètre re_search_times est 0 dans le paramètre qp, aucune re-recherche n'est déclenchée. Voici un exemple de réponse.
"qp": [
{
"app_name": "130180448",
"query_correction_info": [
{
"index": "index",
"original_query": "Barbie Brown Powder",
"corrected_query": "Barbie Brown Powder",
"correction_level": 1,
"processor_name": "spell_check"
}
],
"re_search_times": 0
}
],
Le code suivant illustre la chaîne de requête après configuration des paramètres re_search et fetch.
query=query=index:'search test'&&config=start:0,hit:10,format:fulljson&fetch_fields=title;subtitle&fetch=qp:profile&re_search=re_search=strategy:threshold,params:total_hits#6
Analyse des requêtes basée sur plusieurs règles
Dans une demande de recherche, vous pouvez spécifier plusieurs règles d'analyse en définissant le paramètre qp au format qp=qpName1,qpName2. Supposons l'utilisation de deux index (index_1 et index_2) et de deux analyseurs (qp_1 et qp_2). Tenez compte des limitations suivantes :
Cas 1 : L'index index_1 est associé à l'analyseur qp_1. L'index index_2 est associé à l'analyseur qp_2.
# Query clauses
index_1:'xxx' AND index_2:'xxx' & qp=qp_1,qp_2 # The query clause is valid.
index_1:'xxx' & qp=qp_1,qp_2 # The query clause is valid.
index_2:'xxx' & qp=qp_1,qp_2 # The query clause is valid.
Cas 2 : L'index index_1 est associé à la fois à l'analyseur qp_1 et à l'analyseur qp_2.
# Query clauses
index_1:'xxx' & qp=qp_1,qp_2 # An error occurs. The error message "6601:Rewrite index used in multi qp chains" is returned.
index_1:'xxx' & qp=qp_1 # The query clause is valid.
index_2:'xxx' & qp=qp_2 # An error occurs. The error message "6606:No index need to process by QP" is returned.
Fonctionnalités d'analyse des requêtes prises en charge selon les secteurs
Fonctionnalité | Usage général | E-commerce | E-commerce amélioré | Informatique | Éducation | Dictionnaire d'intervention |
Filtrage des mots vides | √ | √ | √ | √ | √ | √ |
Correction orthographique | √ | √ | √ | √ | √ | √ |
Analyse du poids des termes | √ | √ | √ | √ | √ | √ |
Configuration des synonymes | √ | √ | √ | √ | √ | √ |
Prédiction de catégorie | √ | √ | √ | √ | √ | √ |
NER | × | √ | √ | × | × | √ |
Intégration de mots | × | × | × | × | √ | × |
Remarque : Une coche (√) indique que la fonctionnalité est prise en charge, tandis qu'une croix (×) indique qu'elle ne l'est pas. | ||||||