service de requête

Le service Query génère les expressions de recherche, puis transmet l'expression à Elasticsearch. Il prend également les résultats de la requête et les convertit en un format qui peut être utilisé par la vitrine. La vitrine n'a pas besoin de savoir que la réponse a été générée par Elasticsearch plutôt que par Solr.

Dans HCL Commerce Search version 9.1, les requêtes de recherche sont générées à l'aide du microservice Query. Il est utilisé pour créer les requêtes de recherche qui seront transmises au moteur Elasticsearch. La fonction de génération de requêtes a été intégrée dans le conteneur Docker de recherche dans les versions précédentes de HCL Commerce mais, puisqu'il s'agit d'un microservice distinct, il est maintenant plus facile à traiter et à personnaliser.

Contrôle de la requête à l'aide de REST

Les services Query et Ingest sont les seules API visibles depuis l'extérieur de la passerelle. Le service expose ses propres nœuds finaux REST, comme décrit dans Spécifications API du service Query.

Tous ces heuristiques sont appliqués dans la génération de la requête de recherche, qui est ensuite transmise à Elasticsearch.

Le service de requête se compose de classes Java compatibles REST implémentées sous forme de contrôleurs Spring Boot. Spring Boot est une structure open source basée sur Java pour la création de microservices. Les classes annotées qu'il expose par défaut sont les suivantes :
  • La vue Produit,
  • la vue Catégorie et
  • la vue Contenu.
Vous pouvez ajouter votre propre nœud final personnalisé en ajoutant de nouvelles classes Java annotées. Grâce à cette approche, vous n'être plus obligé de modifier le descripteur de déploiement ou les fichiers de propriétés.

Toutes les configurations, y compris le profil de recherche, les configurations d'exécution et l'invalidation du cache, peuvent être définies via l'API REST et sont stockées dans ZooKeeper. Vous pouvez utiliser les valeurs existantes et les substitutions de valeur lors de la configuration de vos profils de recherche. Toute logique personnalisée référencée par les profils de recherche peut être implémentée et expédiée dans des fichiers de classe Java, packagés et regénérés en une image Docker personnalisée

Pour examiner l'API, voir API REST de Query.

Processeur de langage naturel

Outre les fonctions de recherche de texte et de navigation fournies par le service Query, un analyseur de langage naturel est intégré au service Query pour améliorer la pertinence de la recherche. L'analyseur du langage naturel utilise CoreNLP pour l'étiquetage et la lemmatisation de catégories grammaticales. Le service Query HCL Commerce Search fournit également les fonctions supplémentaires suivantes lors de l'analyse de la phrase de recherche utilisée par un client :
  • L'analyse du langage naturel avec l'étiquetage CoreNLP de parties grammaticales, l'extraction d'entité nommée – noms par rapport aux marques et aux noms de produit, et adjectifs par rapport aux valeurs d'attribut
  • Matchmaker pour le mappeur de nom de couleur, la mesure et le mappeur de plage de dimensions pour identifier les valeurs d'attribut à proximité proche.
  • Conversion de mesure pour la longueur, le poids, le volume, la date et l'heure.
  • Filtre de plage qui peut identifier une condition de plage dans une phrase de recherche donnée et la mapper dans un filtre de plage pour la recherche.
Le générateur de requêtes peut reconnaître les attributs courants d'un produit, tels que la couleur et la dimension, même si ceux-ci sont exprimés dans un langage familier raisonnable Par exemple, le service peut analyser correctement une chaîne de recherche telle que "Je suis à la recherche d'une paire de chaussures habillées blanches", en faisant ce qui suit :
  • Identifiez l'intention de l'instruction comme "Acheter".
  • Réalisez l'extraction de nom-entité à l'aide d'un dictionnaire personnalisé (ajouté via la formation précédente) pour identifier "chaussures habillées" en tant que nom.
  • Utilisez le nom "chaussures habillées" pour effectuer une recherche dans la zone de catalogue Nom du produit.
  • Identifiez la catégorie grammaticale "blanches" comme adjectif et utilisez-la pour effectuer une recherche dans les zones de catalogue Attribut.
  • Identifiez la valeur "blanche" comme un nom de couleur et normalisez-la au code RGB FFFFFF. Les couleurs "claires" peuvent être normalisées à tout ce qui a un code RGB supérieur à A0A0A0.
  • Au moment de l'indexation, normalisez le nom de couleur "crème" à une famille de couleurs primaires RGB dont le code est FFFFFF.
  • Via la classification de texte, identifiez "chaussures habillées" (par le biais d'un dictionnaire personnalisé) comme relevant de la catégorie "chaussures" et un filtre supplémentaire avec le nom de catégorie contenant "chaussures" (lemmatisé).
S'agissant des dimensions, le service peut analyser la chaîne de recherche "trouve-moi un téléviseur de 180 centimètres " et reconnaître correctement que "180 centimètres" est un adjectif, l'utilisant pour effectuer une recherche dans les zones Attribut du catalogue. Dans ce cas, la valeur "centimètre" est identifiée comme un nom de dimension et sa valeur sera convertie si nécessaire en d'autres mesures de longueur prises en charge, telles que "pieds", "pouces", "mètres".

Pour plus d'informations, voir Pertinence du texte dans HCL Commerce Search et .Traitement du langage naturel (NLP) dans la version 9.1