![HCL Commerce Version 9.1.8.0 or later](../../base/images/9180plus.png)
Campos de inventario y personalizados en un perfil de búsqueda personalizado
Puede añadir campos personalizados en el perfil de búsqueda editando la configuración de ZooKeeper.
Before you begin
ZooKeeper almacena los perfiles con nombre en uno de sus nodos. Puede crear, actualizar, eliminar y obtener perfiles utilizando el punto final de los perfiles del servicio de consulta. El punto final del perfil es:
https://data_environment_hostname:30921/search/resources/api/v2/documents/profiles/profileName
No es necesario reiniciar ningún contenedor después de añadir un perfil utilizando este punto final.Asegúrese de que ha correlacionado el nombre de campo en el componente ZooKeeper nodo, como en el ejemplo siguiente. Para comprender cómo se gestionan los perfiles de búsqueda en ZooKeeper, consulte Configuración de servicios de consulta en ZooKeeper. Para más información sobre los perfiles de búsqueda predeterminado, consulte Perfiles de búsqueda.
{
"valuemappingservice": {
"valuemapping": [
{
"internalName": "CatalogEntryUserDataFieldNameMapping",
"externalName": "CatalogEntryUserDataFieldNameMapping",
"valuemap": [
{
"externalValue": "inventories.*.quantity",
"internalValue": "inventories.*.quantity"
},
{
"externalValue": "workspace",
"internalValue": "workspaceName"
}
]
}
]
}
}
Para campos de inventario, busque parámetros de acuerdo con el patrón inventories.*.quantity
. Esta búsqueda devuelve todos los artículos de inventario numerados; por ejemplo, inventories.10501.quantity
.Procedure
-
Utilice el procedimiento siguiente para añadir búsquedas de términos.
-
2) Para la exploración de categorías
Formateo de campos con nombres que acaban en *
Para formatear campos que terminan con * en el servicio de mapeo de valores en json, establezca formatUserData en el valor true
en la sección de correlaciones de valores SearchConfiguration
. De forma predeterminada, el valor es true
para este distintivo.
Example
A continuación se muestra un perfil de ejemplo.
{
"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.*"
]
}
}
Correlación de ejemplo para campos personalizados: {
"valuemappingservice": {
"valuemapping": [
{
"internalName": "CatalogEntryUserDataFieldNameMapping",
"externalName": "CatalogEntryUserDataFieldNameMapping",
"valuemap": [
{
"externalValue": "List",
"internalValue": "test.*"
},
{
"externalValue": "List1",
"internalValue": "test1.list1"
},
{
"externalValue": "CategoryDetails",
"internalValue": "category.*"
}
]
}
]
}
}
Después de ejecutar el término API de búsqueda, se devuelve en la respuesta la sección Datos de usuario con campos personalizados."UserData": [
{
"List1": [
"10",
"20"
],
"CategoryDetails": [
{
"10001-10001": {
"id": "10001",
"name": "dresses",
"sequence": "1.0"
}
}
],
"List": [
{
"list": "10"
},
{
"list": "20"
}
]
}
]
Para List
y List1
la estructura de respuestas es diferente, porque hay distintas correlaciones en la sección de correlación de valores. Si se especifica la vía de acceso de campo completa, se devolverá una lista similar a List1. Si el comodín * se utiliza en la correlación de campos, se formateará como un objeto json similar al objeto List de ejemplo.
Note: No anule los siguientes perfiles. Son solo para uso interno de HCL.
- HCL_findCatalogEntryByIdForBrowse
- HCL_findCatalogEntryById