Crear de un perfil personalizado de Ingest y enlazarlo al canal del conector predeterminado

En este tema aprenderá a crear un perfil personalizado de Ingest y a enlazarlo al canal del conector predeterminado.

Procedure

Para crear un perfil personalizado de Ingest y enlazarlo al canal del conector predeterminado, siga los pasos siguientes.
  1. Utilizando un cliente REST, emita el siguiente comando POST para crear un perfil de Infgest DatabaseProductStage1a.
    POST http://QUERY_HOST:QUERY_PORT/search/resources/api/v2/documents/profiles/DatabaseProductStage1a?profileType=Ingest
    A continuación se muestra el cuerpo de la solicitud. Tenga en cuenta que tiene los nombres de clase totalmente calificados del proveedor personalizado y del postprocesador que ha creado anteriormente en el proyecto commerce-custom-search-marketplace-seller-9.1.x.x.
    {
       "profileName": "DatabaseProductStage1a",
       "provider": [
             "com.mycompany.data.ingest.product.providers.ChangeSQL"
       ],
       "preprocessor": [],
       "postprocessor": [
      "com.mycompany.data.ingest.product.processors.ChangeDocument"
       ]
    }	
    
    A continuación se muestra la respuesta esperada:
    {
      "Profile created with name": "DatabaseProductStage1a"
    }
  2. Reinicie el contenedor query-app.
  3. Enlace el perfil de Ingest personalizado al canal del conector. Realice los pasos siguientes. Para obtener instrucciones sobre cómo utilizar un endpoint de Ingest para actualizar el enlace de perfil de Ingest como una variable a un canal de conector, consulte Actualización de un grupo de procesos, un procesador y un servicio de controladores de NiFi mediante un descriptor de conectores de Ingest.
    • Abra la interfaz de usuario de NiFi y vaya a Flujo de NiFi > auth.reindex - Etapa de producto 1a (documento principal) > Crear documentación del producto > SCROLL SQL.
    • Pulse el botón derecho del ratón sobre el lienzo vacío y haga clic en variables.

    • Cree una nueva variable con el nombre ingest.profile.name y un valor de DatabaseProductStage1a. Pulse el botón Aplicar.

    • Reinicie el contenedor de NiFi.
    • Una vez que la interfaz de usuario de NiFi se esté ejecutando y no haya errores o componentes no válidos, ejecute un índice completo para storeId=31. Esto se puede hacer utilizando el siguiente punto final de Ingest.
      POST http://INGEST_HOST:INGEST_PORT/connectors/auth.reindex/run?storeId=31
    • Compruebe si se ha completado el índice utilizando el runid obtenido en la respuesta del índice de compilación, como en el ejemplo siguiente:
      GET http://INGEST_HOST:INGEST_PORT/connectors/auth.reindex/runs/runid/status

      El atributo seller_description.raw también se indexa mediante el índice de compilación, y se puede validar asimismo desde la consola NiFi.

      Vaya a Flujo de NiFi > auth.reindex - Etapa de producto 1a (documento principal) > Crear documentación del producto > Crear documentación del producto desde la base de datos. Pulse el botón derecho del ratón en Transformar documento > Crear producto a partir de la base de datos > Ver procedencia de los datos.

    • Pulse el icono Ver detalles de CONTENT_MODIFIED en la columna Tipo.

    • Seleccione la pestaña Contenido en el cuadro de diálogo Procedencia del suceso y haga clic en el botón Ver.

En este tema ha aprendido a crear un perfil personalizado de Ingest y a enlazarlo al canal del conector predeterminado.

Alteración temporal de los perfiles de búsqueda de consulta para modificar los campos de respuesta

En este tema aprenderá a alterar temporalmente los perfiles de búsqueda de consulta para modificar los campos de respuesta.

Procedure

Altere temporalmente los perfiles de búsqueda de consulta para modificar los campos de respuesta.

También puede alterar temporalmente los perfiles de búsqueda predeterminados creando un perfil personalizado usando el mismo nombre que el del perfil predeterminado. Si está disponible un perfil personalizado con el mismo nombre que un perfil predeterminado, se utiliza el perfil personalizado y se ignora el perfil predeterminado. Para ver los pasos detallados sobre cómo alterar temporalmente los perfiles de búsqueda, consulte Configuración del perfil de búsqueda personalizado.

  • Altere temporalmente el perfil de consulta de búsqueda predeterminado para incluir el atributo adicional seller_description.raw en la respuesta de la consulta.
  • Amplíe el perfil de búsqueda predeterminado HCL_findCatalogEntrySKUs añadiendo seller_description.raw en la sección del perfil de búsqueda existente responseFields.
    GET http://QUERY_HOST:30920/search/resources/api/v2/documents/profiles/HCL_findCatalogEntrySKUs
  • Ejecute la invocación GET para recuperar el perfil de consulta predeterminado y ejecute la invocación PUT para crear el perfil de consulta personalizado utilizando la respuesta de la invocación GET como un cuerpo de solicitud después de añadir el atributo seller.description.raw en JSON. Esto ampliaría el perfil de consulta predeterminado de la manera que se indica a continuación:
    PUT http://QUERY_HOST:30920/search/resources/api/v2/documents/profiles/HCL_findCatalogEntrySKUs
    
    {
    "profileName" : "HCL_findCatalogEntrySKUs",
    
    "indexName" : "product",
    	
    "query" : {
    		
    "params" : [
    {"maxRows" : "1200"}
    ],
    			
    "queryFields" : ["relationship.product.id"],
    		
    "provider" : [
    "com.hcl.commerce.search.internal.expression.provider.SearchInventoryExpressionProvider",			
    "com.hcl.commerce.search.internal.expression.provider.SearchByPublishedEntryOnlyExpressionProvider",
    "com.hcl.commerce.search.internal.expression.provider.SearchByStorePathExpressionProvider",
    "com.hcl.commerce.search.internal.expression.provider.SearchBySellerExpressionProvider",
    "com.hcl.commerce.search.internal.expression.provider.SearchByCatalogExpressionProvider",
    "com.hcl.commerce.search.internal.expression.provider.SearchByLanguageExpressionProvider",
    "com.hcl.commerce.search.internal.expression.provider.SearchProductEntitlementExpressionProvider"],
    		
    "preprocessor" : [],
    		
    "postprocessor" : [
    "com.hcl.commerce.search.internal.expression.postprocessor.SearchMainCatalogEntryViewResultQueryPostprocessor",
    "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewPriceQueryPostprocessor",
    "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewUserDataQueryPostprocessor" 
    ],
    		
    "responseFields" : [
    "id.catentry",
    "id.store",
    "buyable",
    "id.catalog",
    "identifier.sku.raw",
    "name.raw",
    "name.override.raw",
    "description.raw",
    "description.override.raw",
    "url.thumbnail",
    "url.override.thumbnail",
    "url.image",
    "url.override.image",
    "keyword.text",
    "manufacturer.raw",
    "id.member",
    "seller.raw",
    "seller_description.raw",
    "type",
    "prices.*",
    "path.*",
    "relationship.product.id",
    "relationship.item.id",
    "attribute.source",
    "url.seo",
    "url.override.seo",
    "attachments.*",
    "images.*",
    "description.long"
    ]
    }
    }
  • La respuesta debe ser similar a la siguiente:
    {
      "Profile created with name": "HCL_findCatalogEntrySKUs"
    }                            
  • Repita este paso para el perfil de búsqueda HCL_V2_findProductByPartNumber_Details añadiendo seller_description.raw en la sección responseFields del perfil de búsqueda existente.
    GET http://QUERY_HOST:QUERY_PORT/search/resources/api/v2/documents/profiles/HCL_V2_findProductByPartNumber_Details
  • Añada seller_description.raw en la sección responseFields del perfil de búsqueda existente para utilizarlo como cuerpo de solicitud para la invocación PUT que se muestra a continuación para alterar temporalmente el perfil de búsqueda predeterminado de HCL_V2_findProductByPartNumber_Details.
    PUT http://QUERY_HOST:30920/search/resources/api/v2/documents/profiles/HCL_V2_findProductByPartNumber_Details
    {
    "profileName": "HCL_V2_findProductByPartNumber_Details",
    "indexName": "product",
    "query": {
    "params": [
    {
    "DynamicKitReturnPrice": "true"
    },
    {
    "maxRows": "50"
    }
    ],
    "queryFields": [
    "identifier.sku.normalized"
    ],
    "provider": [
    "com.hcl.commerce.search.internal.expression.provider.SearchByCatalogExpressionProvider",
    "com.hcl.commerce.search.internal.expression.provider.SearchByStorePathExpressionProvider",
    "com.hcl.commerce.search.internal.expression.provider.SearchBySellerExpressionProvider",
    "com.hcl.commerce.search.internal.expression.provider.SearchByLanguageExpressionProvider",
    "com.hcl.commerce.search.internal.expression.provider.SearchInventoryExpressionProvider",
    "com.hcl.commerce.search.internal.expression.provider.SearchProductEntitlementExpressionProvider"
    ],
    "preprocessor": [],
    "postprocessor": [
    "com.hcl.commerce.search.internal.expression.postprocessor.SearchMainCatalogEntryViewResultQueryPostprocessor",
    "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewPriceQueryPostprocessor",
    "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewSKUQueryPostprocessor",
    "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewAttributesQueryPostprocessor",
    "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewAttachmentsQueryPostprocessor",
    "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewImagesQueryPostProcessor",
    "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewComponentsQueryPostprocessor",
    "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewMerchandisingAssocQueryPostprocessor",
    "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewUserDataQueryPostprocessor"
    ],
    "responseFields": [
    "id.catentry",
    "id.store",
    "id.catalog",
    "buyable",
    "identifier.sku.raw",
    "name.raw",
    "name.override.raw",
    "description.raw",
    "description.override.raw",
    "url.thumbnail",
    "url.override.thumbnail",
    "keyword.text",
    "manufacturer.raw",
    "id.member",
    "seller.raw",
    "seller_description.raw",
    "type",
    "prices.*",
    "path.*",
    "relationship.item.*",
    "relationship.product.id",
    "relationship.component.*",
    "subscription.type",
    "subscription.recurring",
    "url.image",
    "url.override.image",
    "description.long",
    "attribute.source",
    "kit.components",
    "kit.preconfigured",
    "kit.model",
    "kit.URL",
    "kit.default_configuration",
    "kit.pdks",
    "kit.parent.model",
    "kit.configurable",
    "kit.parent.configurable",
    "associations.*",
    "url.seo",
    "attachments.*",
    "images.*"
    ]
    }
    }
    La respuesta debe ser similar a la siguiente:
    {
      "Profile created with name": "HCL_V2_findProductByPartNumber_Details"
    }                                
  • Reinicie el contenedor de servicios de consulta.

Pruebe la personalización para verificar que la personalización se ha realizado correctamente.

En este tema ha aprendido a modificar los campos de respuesta alterando los perfiles de búsqueda de consulta.

Prueba de las ampliaciones del perfil de Ingest

En este tema, aprenderá a probar las extensiones de perfil de Ingest.

Procedure

Pruebe las extensiones del perfil de Ingest.

El paso relativo a la prueba es el mismo para los entornos de desarrollador y de ejecución.

  • Compile el índice para la tienda EmeraldMP (storeId = 31).
  • Una vez finalizada la indexación y cuando la interfaz de usuario de NiFi muestra datos en cola de 0/0 bytes, realice las pruebas siguientes para comprobar que los campos de respuesta contienen seller_description.raw cuando se realiza la búsqueda para los perfiles de búsqueda HCL_findCatalogEntrySKUs y HCL_V2_findProductByPartNumber_Details.
    • Prueba 1: Compruebe que la respuesta para el siguiente endpoint de consulta de búsqueda recupera seller_description.raw para el perfil HCL_findCatalogEntrySKUs .

      Ejecute el siguiente comando GET desde el cliente REST.
      GET http://QUERY_HOST:QUERY_PORT/search/resources/api/v2/products?storeId=31&seller=7000000000000007002&id=14503
    • Prueba 2: Compruebe que la respuesta para el endpoint de consulta siguiente recupera seller_description.raw para el perfil HCL_V2_findProductByPartNumber_Details.

      Ejecute el siguiente comando GET desde el cliente REST.
      GET http://QUERY_HOST:QUERY_PORT/search/resources/api/v2/products?storeId=31&partNumber=MPHBA031_3103&seller=7000000000000007002