Gestion des synonymes, des mots neutres et des associations de termes de recherche

ZooKeeper est utilisé pour gérer plusieurs types de listes personnalisables de termes associés utilisés par la fonction de recherche. Les mots neutres sont supprimés de la requête avant son traitement. Les synonymes et les associations de termes de recherche (STA) implémentent des substitutions de catalogue pour les termes de requête de façon légèrement différente. Chaque liste personnalisée est accessible et vous pouvez modifier directement les mots neutres et les synonymes dans ZooKeeper.

Introduction

ZooKeeper stocke un ensemble de listes utilisées par le service Query version 9.1. Chaque liste se compose d'un mot et de l'association qui l'accompagne ou de l'action à prendre lorsqu'il est rencontré. Trois listes sont actuellement gérées :
  • La liste Mots neutres enregistre tous les mots qui doivent être filtrés hors de la requête de recherche avant que le traitement du langage naturel n'y soit appliqué. Cette liste contient généralement les mots les plus courants dans une langue (comme "le" en français).
  • Les synonymes et les associations de termes de recherche élargissent la portée de la recherche et donc ses résultats en ajoutant des termes supplémentaires à ceux que le client soumet. Les résultats de la recherche incluent ceux du terme soumis, plus ceux des synonymes définis ou des STA pour ce terme. Bien qu'elles soient traitées de la même manière, il s'agit de listes distinctes générées par différents mécanismes. Le mécanisme de STA fournit une approche rétrocompatible dans laquelle les synonymes sont chargés directement à partir de la base de données. Le mécanisme de synonymes utilise ZooKeeper et est destiné à fournir plus d'options pour la gestion des associations dans l'environnement Elasticsearch.
Ces listes personnalisées sont stockées au format JSON dans ZooKeeper, dans des dictionnaires spécifiques à la langue. Les sections suivantes décrivent la structure de ces dictionnaires et la façon dont vous pouvez interagir avec eux dans ZooKeeper à l'aide de l'API REST.

Dictionnaire Mots neutres

Vous interagissez avec le dictionnaire Mots neutres à l'aide d'appels REST. Les appels autorisés sont GET, POST et PATCH. Par exemple, dans le cas d'un appel GET, le corps de la réponse contient un ensemble au format JSON des termes que vous appelez. Il n'y a pas d'appel DELETE explicite. Toutefois, vous pouvez simplement faire un appel POST avec un contenu vide pour supprimer un objet.

L'adresse de cette requête est :
http://data_environment_hostname:30920/search/resources/api/v2/configuration?nodeName=environmentType_storeID_product_stopwords&locale=en_US
environmentType est soit ou est :
http://data_environment_hostname:30920/search/resources/api/v2/configuration?nodeName=environmentType_storeID_product_stopwords&locale=en_US
Où le environmentType est un environnement de création ou de production.
Votre réponse contiendra un ensemble de mots neutres, comme dans l'exemple suivant.
{    
"the": "",
"and":""
} 
Options de requête ZooKeeper
"http://search_server:30920/search/resources/api/v2/configuration?nodeName&locale-en_US
nodeName est l'espace de nom mis à plat pour l'index.

Mise à jour des synonymes et des termes de remplacement

Vous pouvez également mettre à jour des synonymes et des termes de remplacement à l'aide de l'API REST de configuration du service Query. Les appels autorisés sont GET, POST et PATCH. Par exemple, dans le cas d'un appel GET, le corps de la réponse contient un ensemble au format JSON des termes que vous appelez. Il n'y a pas d'appel DELETE explicite. Toutefois, vous pouvez simplement faire un appel POST avec un contenu vide pour supprimer un objet.

L'adresse de cette requête est :
http://data_environment_hostname:30920/search/resources/api/v2/configuration?nodeName=environmentType_storeID_product_sta&locale=en_US
Votre réponse contiendra un ensemble de synonymes, comme dans l'exemple suivant.
{    
"couch, sofa": ""  ,  
"coff => coffee": "" ,
"driveway, road, street": "" , 
...} 
Les synonymes peuvent être des mots simples associés à un terme original, dans une liste l'une après l'autre. Cela est similaire à la structure utilisée pour les mots neutres, bien qu'il existe plusieurs façons dont la notation sera interprétée pour la liste en fonction de vos paramètres. Les paramètres par défaut pour interpréter la liste sont :
  • expand = true
  • lenient false
Pour une description complète de la façon dont Elasticsearch utilise ces paramètres, voir Filtre de jeton de synonyme dans la référence Elasticsearch. Cette flexibilité dans la construction et l'interprétation de la liste de synonymes est ce qui exige la distinction entre les synonymes et STA dans l'implémentation de Commerce Elasticsearch.

Pour plus d'informations sur l'ajustement du traitement des synonymes, voir Configurations liées aux synonymes.

Utilisation de STA

Les associations de termes de recherche sont fonctionnellement identiques aux synonymes et sont stockées au même format dans ZooKeeper. Les STA sont traités de la même manière par Elasticsearch que par Solr. Pour plus d'informations, voir Associations de termes de recherche. Les associations de termes de recherche (STA) d'Elasticsearch sont également générées à l'aide du même mécanisme que celles utilisées par le moteur de recherche Solr, plutôt que par le mécanisme d'appel REST utilisé pour les synonymes et les mots neutres. Le processus est que lorsqu'une STA est enregistrée dans , une mise à jour Near Realtime (NRT) est déclenchée et écrase la liste STA existante dans ZooKeeper par une nouvelle liste depuis la base de données.

Vous pouvez effectuer une opération Get pour vérifier les modifications.

{
   "couch, sofa": "" 
   ...
}