Crear el índice de Elasticsearch

Una vez que haya instalado las aplicaciones de núcleo de HCL Commerce y haya configurado un entorno de escaparate inicial, inicie los contenedores de Docker de búsqueda predeterminados. A continuación, siga estas instrucciones para conectar los microservicios de búsqueda de la versión 9.1 en un sistema operativo.

Procedure

  1. Cree su índice de búsqueda.
    El enfoque preferido es realizar la llamada de creación de índice directamente al servidor de Ingest. Para cada índice excepto el índice de precios, puede obtener mejores detalles y registros más completos de esta manera. En primer lugar, determine el nombre del conector que está creando. Normalmente se crea en auth.reindex, que es análogo a la realización de una compilación de índice completa con Solr. Puede crear en otros conectores si desea indexar subconjuntos específicos.
    HCL Commerce Version 9.1.12.0 or laterTip: Si utiliza la característica Marketplace, la indexación espera de forma predeterminada a que finalice el proceso posterior a la indexación antes de actualizar el escaparate, a diferencia de las versiones anteriores. Puede haber cierto retraso antes de que se renueve el escaparate si tiene un gran número de usuarios de Marketplace. Para evitar que el escaparate espere a que finalice el proceso posterior a la indexación, establezca el parámetro flow.concurrent.postindex en true en lugar de en el valor predeterminado, false, utilizando el siguiente endpoint.
    http://Query_Server:30920/search/resources/api/v2/configuration?nodeName=ingest&envType=auth
    {
        "global": {
            "connector": [
                {
                    "name": "attribute",
                    "property": [
    {                         "name": "flow.concurrent.postindex", "value": "true"   }
                    ]
                }
            ]
        }
    }
    1. Cree el índice utilizando la siguiente llamada REST. En este ejemplo se presupone que está indexando el conector auth.reindex.
      POST https://ingestServerHostname:port/connectors/auth.reindex/run?storeId=11
      Esta llamada devolverá un runID. Por ejemplo:
      {     "runId": "i-26144b4d-cd1c-4679-b2c2-870fc27e6095" } 
    2. Puede comprobar el estado de la compilación mientras está en curso. Para ello, tome el runID devuelto en el paso 1.a y realice la siguiente llamada REST, insertando el runID después de /runs/ en la cadena. Utilizando el runID anterior, por ejemplo, la llamada sería:
      GET http://ingestServerHostname:port/connectors/auth.reindex/runs/i-26144b4d-cd1c-4679-b2c2-870fc27e6095/status
      La información de estado que se devuelve indica aproximadamente cuánto progreso se ha realizado en la creación del índice.
      {     "date": "2022-04-06T17:51:44.462",
           "runId": "i-26144b4d-cd1c-4679-b2c2-870fc27e6095",
           "fromType": "Ingest",
           "message": "Indexing running, current progression of indexing is at process group: auth.reindex - WaitLink - Category Stage 1a",
           "status": -1,
           "progress": "30% (30 out of 101 pipes processed) " } 
      CAUTION:
      1. El valor de porcentaje proporcionado en el campo de progreso no hace referencia al tiempo. En el ejemplo anterior, 30% no significa necesariamente que usted es el 30% del tiempo de indexación que ha transcurrido. Más bien, este porcentaje es una medida del número de canalizaciones procesadas hasta ahora.
      2. Con las llamadas posteriores, es posible que vea que el número de progreso aumenta o baja. Por ejemplo, la primera llamada puede devolver un valor de progreso del 60%, mientras que una segunda realizada poco tiempo después puede devolver el 30%. Esto se produce porque el proceso de indexación se divide en diferentes catálogos, idiomas, etc., y no los procesa todos a la vez.
      Cuando la indexación se ha completado, la llamada produce un informe que resume el índice, con los errores y condiciones especiales anotados. Por ejemplo,
      "message": "Indexing run finished according to Nifi queue being empty for given connector. 
      {\"start\":\"2022-04-06T17:50:17.821Z\",\"end\":\"2022-04-06T17:53:02.346Z\",\"run\":\"i-26144b4d-cd1c-4679-b2c2-870fc27e6095\",\"severities\":
      {\"I\":15,\"W\":2}
      
      ,\"codes\":{\"DI1002I\":14,\"DI1050W\":2},\"locations\":{\"warning\":
      {\"Others\":2}
      
      ,\"info\":{\"Others\":14,\"Price Stage 2, Copy Contract Prices\":1}},\"elapsed\":{\"absolute\":{\"connector\":164525,\"summary\":{\"Attribute Pipeline\":\"4548\",
      \"Catalog Pipeline\":\"5155\",\"Category Pipeline\":\"13956\",\"Price Pipeline\":\"2911\",\"Product Pipeline\":\"21389\",\"Store Pipeline\":\"25336\",\"URL 
      Al eliminar /status al final de la llamada, puede recuperar registros más detallados para revisar los errores. El índice de precios es una excepción; solo se puede construir en Transaction server. Esto se debe a que los cálculos de precios se realizan en Transaction server, por lo que todavía necesita invocar la llamada POST en Transaction server.
    Como alternativa, puede utilizar el método siguiente para crear el índice.
    1. Emita el siguiente mandato desde un cliente de REST.
      POST: https://ingestServerHostname:ingestServerPort/connectors/auth.reindex/run?storeId=11
      Deje el Cuerpo vacío y utilice la autenticación básica con el nombre de usuario spiuser y la contraseña spiuserPassword.
      Note:
      • La contraseña predeterminada para el usuario spiuser es passw0rd para las versiones de HCL Commerce entre 9.1.0.0 y 9.1.8.0, y QxV7uCk6RRiwvPVaa4wdD78jaHi2za8ssjneNMdu3vgqipara la versión de HCL Commerce 9.1.9.0 o posteriores.
      • Es esencial que establezca su propia contraseña spiuser para proteger el despliegue. Para obtener más información, consulte Establecimiento de la contraseña de spiuser en las imágenes de Docker.

      En el ejemplo, storeId se proporciona como 11; sustitúyalo por storeId de sus propias tiendas.

      Los valores predeterminados son:
      • AuroraESite: storeId=1
      • AuroraB2BSite: storeId=2
      • Emerald storeId=11
      • Sapphire storeId=12

      O

      Desde un indicador de mandatos, emita el siguiente mandato:

      curl --user spiuser:spi_plain_text_password --insecure -X POST "https://ingestServerHostname:ingestServerPort/connectors/auth.reindex/run?storeId=11"
      Esta llamada devolverá un valor runID . Por ejemplo:
      { "runId": "i-26144b4d-cd1c-4679-b2c2-870fc27e6095" }
    2. Espere a que finalice la creación del índice u observe su estado utilizando su valor runID .
      Emita el siguiente mandato GET REST para obtener el estado de compilación.
      Utilice el valor devuelto para runID del paso anterior.
      GET http://ingestServerHostname:ingestServerPort/connectors/auth.reindex/runs/runId/status

      O

      Desde un indicador de mandatos, emita el siguiente mandato:
      curl --user spiuser:spi_plain_text_password --insecure -X GET "http://ingestServerHostname:ingestServerPort/connectors/auth.reindex/runs/runId/status"
      • Si la compilación está en curso, un mensaje similar al siguiente proporcionará detalles de su estado actual.
        {     "date": "2022-04-06T17:51:44.462",     "runId": "i-26144b4d-cd1c-4679-b2c2-870fc27e6095",     "fromType": "Ingest",     "message": "Indexing running, current progression of indexing is at process group: auth.reindex - WaitLink - Category Stage 1a",     "status": -1,     "progress": "30% (30 out of 101 pipes processed) " }
        Note: El porcentaje de progreso es una métrica simple basada en el número de canalizaciones procesadas. No refleja con precisión el progreso en términos de tiempo.
      • Una vez completado, un mensaje similar al siguiente detallará el resultado de la compilación completada.
        "message": "Indexing run finished according to Nifi queue being empty for given connector. {\"start\":\"2022-04-06T17:50:17.821Z\",\"end\":\"2022-04-06T17:53:02.346Z\",\"run\":\"i-26144b4d-cd1c-4679-b2c2-870fc27e6095\",\"severities\":
        
        {\"I\":15,\"W\":2}
        ,\"codes\":{\"DI1002I\":14,\"DI1050W\":2},\"locations\":{\"warning\":
        
        {\"Others\":2}
        ,\"info\":{\"Others\":14,\"Price Stage 2, Copy Contract Prices\":1}},\"elapsed\":{\"absolute\":{\"connector\":164525,\"summary\":{\"Attribute Pipeline\":\"4548\",\"Catalog Pipeline\":\"5155\",\"Category Pipeline\":\"13956\",\"Price Pipeline\":\"2911\",\"Product Pipeline\":\"21389\",\"Store Pipeline\":\"25336\",\"URL 
        Puede eliminar /status final de REST GET para obtener registros más detallados para revisar los errores encontrados.
    3. Verifique los datos de índice de búsqueda.
      Utilizando un cliente de REST, emita los siguientes mandatos POST para verificar que los dato de índice de búsqueda están disponibles. Asegúrese de que el contenido del Cuerpo consta de { "query": { "bool": { "must": { "match_all": {} } } } }.
      • Datos de la tienda: http://ElasticSearchServerName:30200/auth.store/_search
      • Datos de categoría: http://ElasticSearchServerName:30200/auth.storeId.category/_search
      • Datos de producto: http://ElasticSearchServerName:30200/auth.storeId.product/_search
  2. Verifique que el servicio de consulta se está ejecutando y que puede encontrar datos. Utilizando un cliente de REST, emita el siguiente mandato:
    https://CommerceServerName​:30901/search/resources/store/storeId/categoryview/@top
    Esta llamada devolverá las categorías principales de la tienda especificada.
  3. Cree el índice de precio de contrato B2B
    Después de crear contratos con ajuste de precio, cree el índice completo como en el paso 2 y, a continuación, cree el índice de precio de contrato. Emita el siguiente mandato desde un cliente de REST.
    POST: https://CommerceServerName​​​:ts-app-port/wcs/resources/admin/index/dataImport/build?connectorId=price&indexSubType=Price&storeId=12
    HCL Commerce Version 9.1.2.0 or later
    POST: https://CommerceServerName​​​:ts-app-port/wcs/resources/admin/index/dataImport/build?connectorId=auth.price&indexSubType=Price&storeId=12
    Deje el Cuerpo vacío y utilice la autenticación básica: Username:spiuser y Password: spiuserPassword. En el ejemplo, storeId se proporciona como 12 (Sapphire); sustitúyalo por el storeId de sus propias tiendas.
    Compruebe el estado del índice de compilación mediante la interfaz REST.
     GET: https://CommerceServerName​​​:ts-app-port/wcs/resources/admin/index/dataImport/status?jobStatusId=jobStatusId
    Donde jobStatusId es el valor de jobStatusId en la respuesta del paso anterior. Utilice la autenticación básica con el nombre de usuario spiuser y la contraseña spiuserPassword.
    Note:
    • La contraseña predeterminada para el usuario spiuser es passw0rd para HCL Commerce 9.1.0.0 a 9.1.8.0, y QxV7uCk6RRiwvPVaa4wdD78jaHi2za8ssjneNMdu3vgqipara HCL Commerce 9.1.9.0 o superior.

    A continuación se muestran Parámetros opcionales para realizar una actualización de precio más dirigida.

    contractId
    Opcional: Se utiliza para crear precios para los ID de contrato especificados.
    Especifique los ID de contrato separados por comas a indexar.
    Si no se especifica ningún ID de contrato, se realiza un recálculo completo de forma predeterminada.
    Ejemplo: https://localhost/wcs/resources/admin/index/dataImport/build?indexSubType=Price&contractId=-10008,-10005
    catentry
    Opcional: Se utiliza para crear precios para las entradas de catálogo especificadas.
    Especifique los ID de entrada de catálogo separados por comas a indexar.
    Si no se especifica ningún ID de entrada de catálogo, se realiza un recálculo completo de forma predeterminada.
    Ejemplo: https://localhost/wcs/resources/admin/index/dataImport/build?indexSubType=Price&catentryId=10006,10005
    currency
    Opcional: Se utiliza para crear los precios de las monedas especificadas.
    Especifique las monedas separadas por comas a indexar.
    Note: Asegúrese de que la tabla CURLIST contiene las monedas adicionales que desea que cree el programa de utilidad para calcular precio.
    Si no se pasan monedas, se realiza un recálculo completo de forma predeterminada.
    Ejemplo: https://localhost/wcs/resources/admin/index/dataImport/build?indexSubType=Price&currency=USD,CAD
  4. Active los entornos de autoría y producción con Push to Live (PTL) end to end. En este paso se presupone que ha creado los conectores Push-to-Live.
    1. Establezca envType​ en live en el archivo de configuración input.properties. Implemente el entorno real HCL Commerce siguiendo las instrucciones de Implementación de HCL Commerce versión 9.1 con Docker Compose (para uso de no producción).
    2. Para replicar el índice de búsqueda en el entorno de producción, emita el mandato siguiente desde un cliente de REST.
      POST: https://CommerceServerName​​​:ts-app-port/wcs/resources/admin/index/dataImport/build?connectorId=push-to-live&storeId=1
      Deje el Cuerpo vacío y utilice la autenticación básica con el nombre de usuario spiuser y la contraseña spiuserPassword.
      Note:
      • La contraseña predeterminada para el usuario spiuser es passw0rd para HCL Commerce 9.1.0.0 a 9.1.8.0, y QxV7uCk6RRiwvPVaa4wdD78jaHi2za8ssjneNMdu3vgqipara HCL Commerce 9.1.9.0 o superior.
      • StoreId se da como 1 (AuroraESite). Sustituya este valor por el storeId para sus propias tiendas.
      Puede verificar el estado mediante la interfaz REST.
      GET: https://CommerceServerName​​​:ts-app-port/wcs/resources/admin/index/dataImport/status?jobStatusId=jobStatusId
      HCL Commerce Version 9.1.4.0Restriction: Si los cambios de datos de catálogo no están disponibles en las tiendas en directo después de una operación push-to-live, desencadene una operación de invalidación WCT+ESINDEX cuando realice la actualización. Para obtener más información sobre las caché que se deben actualizar y el procedimiento, consulte Los cambios de índice no se reflejan en el escaparate después realizar la operación push-to-live de Elasticsearch.
    3. Para los cambios de catálogo Management Center for HCL Commerce, ejecute un índice completo, ejecute stagingprop como siempre y, a continuación, ejecute PTL.