Zones de stock et personnalisées dans un profil de recherche personnalisé
Vous pouvez ajouter des zones personnalisées dans le profil de recherche en éditant votre configuration ZooKeeper.
Before you begin
ZooKeeper stocke les profils nommés dans l'un de ses nœuds. Vous pouvez créer, mettre à jour, supprimer et obtenir des profils à l'aide du nœud final du service Query. Le nœud final du profil est :
https://data_environment_hostname:30921/search/resources/api/v2/documents/profiles/profileNameAucun conteneur ne doit être redémarré après l'ajout d'un profil à l'aide de ce nœud final.Assurez-vous d'avoir mappé le nom de zone dans le nœud de composant ZooKeeper, comme dans l'exemple suivant. Pour comprendre comment les profils de recherche sont gérés dans ZooKeeper, voir Configuration des services Query dans ZooKeeper. Pour en savoir plus sur les profils de recherche, voir Rechercher dans les profils.
{
"valuemappingservice": {
"valuemapping": [
{
"internalName": "CatalogEntryUserDataFieldNameMapping",
"externalName": "CatalogEntryUserDataFieldNameMapping",
"valuemap": [
{
"externalValue": "inventories.*.quantity",
"internalValue": "inventories.*.quantity"
},
{
"externalValue": "workspace",
"internalValue": "workspaceName"
}
]
}
]
}
}
Pour les zones de stock, recherchez des paramètres en fonction du modèle inventories.*.quantity. Cette recherche renvoie tous les articles de stock numérotés ; par exemple, inventories.10501.quantity.Procedure
-
Procédez comme suit pour ajouter des recherches de termes.
-
2) Pour la navigation dans les catégories
Formatage des zones avec des noms qui se terminent par *
Pour formater les zones qui se terminent par * dans le service de mappage de valeurs dans JSON, définissez formatUserData sur la valeur true dans la section SearchConfiguration de mappages de valeurs. Par défaut, la valeur est true pour cet indicateur.
Example
Voici un exemple de profil.
{
"parentProfileName": "HCL_findProductsBySearchTerm",
"profileName": "X_findProductsBySearchTerm",
"lookupProfileName": "X_findCatalogEntryById",
"query": {
"responseFields": [
"test.list",
"test1.list1",
"category.10001-10001.*"
]
}
}
{
"parentProfileName": "HCL_findCatalogEntryById",
"profileName": "X_findCatalogEntryById",
"query": {
"responseFields": [
"test.list",
"test1.list1",
"category.10001-10001.*"
]
}
}
Exemple de mappage pour les zones personnalisées : {
"valuemappingservice": {
"valuemapping": [
{
"internalName": "CatalogEntryUserDataFieldNameMapping",
"externalName": "CatalogEntryUserDataFieldNameMapping",
"valuemap": [
{
"externalValue": "List",
"internalValue": "test.*"
},
{
"externalValue": "List1",
"internalValue": "test1.list1"
},
{
"externalValue": "CategoryDetails",
"internalValue": "category.*"
}
]
}
]
}
}
Après l'exécution de l'API de recherche de termes, la section Données utilisateur avec des zones personnalisées est renvoyée dans la réponse."UserData": [
{
"List1": [
"10",
"20"
],
"CategoryDetails": [
{
"10001-10001": {
"id": "10001",
"name": "dresses",
"sequence": "1.0"
}
}
],
"List": [
{
"list": "10"
},
{
"list": "20"
}
]
}
]
Pour List et List1, la structure de la réponse est différente, car il existe différents mappages dans la section de mappage de valeurs. Si le chemin d'accès complet à la zone est spécifié, une liste similaire à Liste1 sera renvoyée. Si le caractère générique * est utilisé dans le mappage de zone, il sera formaté en tant qu'objet JSON similaire à l'exemple d'objet Liste.
Note: Ne remplacez pas les profils suivants. Ils ne sont utilisés qu'en interne par HCL.
- HCL_findCatalogEntryByIdForBrowse
- HCL_findCatalogEntryById