Canalizaciones de índice de URL de Ingest

Se muestran las correlaciones de datos completas de especificación, base de datos y esquema para la categoría URL.

Especificación de datos de URL

_id Serie UUID ​SEOURL.SEOURL_ID
identifier Serie URL de SEO relativa e identificador exclusivo para este registro shop/womens/bottomsunique identifier (sin barra diagonal) SEOURLKEYWORD​.​URLKEYWORD​

estado

entero Estado actual de URL 0 - Inactiva SEOURL1 - Activa SEOURL2 - Caducada SEOURL SEOURLKEYWORD.STATUS​
storeId entero ID de tienda para esta URL de SEO
languageId entero ID de idioma para esta URL -1
TokenName Serie Nombre para representar el tipo de página StaticPagesToken, ProductToken, CategoryToken ​SEOURL.TOKENNAME
​tokenValue Serie Identificador de la página o identificador de objeto que representa la página p.ej., 10001 SEOURL.TOKENVALUE que se puede correlacionar con CATGROUP.CATGROUP_IDCATENTRY.CATENTRY_ID o un identificador de página estática
​tokenExternalValue Serie Identificador del identificador de objeto externo para el objeto identificado en tokenValue Por ejemplo: Baño, es decir, BR-ACCE-0001 El identificador externo para TOKENVALUE y TOKENNAME especificados. Si TOKENNAME es CategoryToken, este campo se correlaciona con CATGROUP.IDENTIFIER y si TOKENNAME es ProductToken, este campo se correlaciona con CATENTRY.PARTNUMBER
redirectURL Serie URL para redirigir si seoURL está inactivo /shop/womens/modern/bottoms (URL a la que redirigirse si es aplicable con barra diagonal o totalmente calificada si va a ser externa) SEOURLKEYWORD.URLKEYWORD para SEOREDIRECT.SEOURLKEYWD_NEW de registro relacionado
page.name Serie Nombre de página CategoryPage, ProductPage, HomePage ​SEOPAGEDEF.PAGENAME
PageType Serie Tipo de página para calificar el tipo de página Se utiliza con pageName para calificar la página. CategoryPage, ProductListingPage, ProductPage, ItemPage ,BundlePage, KitPage, DynamicKitPage Campo derivado
​​page.layoutName Serie Identificador de diseño opcional para anular la página Para 9.1: se utiliza para anular una página de visualización de categoría o producto Campo derivado
page.title Serie Metadatos de título de página para SEO Parte inferior para mujer | Jjill ​SEOPAGEDEFDESC.TITLE
page.metaDescription Serie Descripción meta de página para SEO ​SEOPAGEDEFDESC.META_DESC
page.metaKeyword Serie Etiquetas/palabras clave meta de página para SEO ​SEOPAGEDEFDESC.META_KEYWORD
page.imageAlternateDescription Serie Descripciones alternativas de imagen de página ​SEOPAGEDEFDESC.IMAGE_ALT_DESC

Correlación de campos de índice de URL de la base de datos

La siguiente secuencia de pasos ilustra la canalización de indexación de URL implementada en Apache NiFi. Hay disponibles amplios ejemplos para cada etapa. Se proporcionan en las secciones inferiores de este tema. Los ejemplos incluyen código SQL, información de la tabla de esquema y entradas y salidas de ejemplo. El flujo consta principalmente de siete etapas:
  1. Crear documento de URL de categoría
  2. Crear el documento de URL de producto
  3. Actualizar tipo de página para documento de URL de categoría
  4. Actualizar URL de categoría para el lenguaje de reserva
  5. Actualizar URL de producto para el lenguaje de reserva
  6. Actualizar URL de SEO al documento de categoría
  7. Actualizar URL de SEO al documento de producto

Paso 1 Crear documento de URL de categoría

Esta etapa describe cómo los datos de URL de SEO de categoría se pueden transformar y cargar en el índice de la URL. Empieza con la ejecución del siguiente SQL para recuperar datos de categoría de la base de datos de Commerce:
 (SELECT A.SEOURL_ID, B.SEOURLKEYWORD_ID, B.URLKEYWORD, B.MOBILEURLKEYWORD, B.STOREENT_ID, B.STATUS,
		       B.LANGUAGE_ID, C.SEOURLKWD_ID_NEW, D.URLKEYWORD URLKEYWORD_NEW, A.TOKENNAME, A.TOKENVALUE, L.LOCALENAME,
		       P.DISPLAYNAME, P.DESCRIPTION, P.CATGROUP_ID, P.NAME, P.SHORTDESCRIPTION, P.KEYWORD,
		       P.SITE_SEOPAGEDEF_ID, P.SITE_PAGENAME, P.SITE_TITLE, P.SITE_META_DESC, P.SITE_META_KEYWORD,
		       P.SITE_IMAGE_ALT_DESC, P.SITE_OBJECT_ID, P.SITE_STOREENT_ID, P.IDENTIFIER,
	           P.OVERRIDE_SEOPAGEDEF_ID, P.OVERRIDE_PAGENAME, P.OVERRIDE_TITLE, P.OVERRIDE_META_DESC,
	           P.OVERRIDE_META_KEYWORD, P.OVERRIDE_IMAGE_ALT_DESC, P.OVERRIDE_OBJECT_ID, TO_CHAR(P.OVERRIDE_STOREENT_ID) OVERRIDE_STOREENT_ID
		  FROM SEOURL A, SEOURLKEYWORD B
			   LEFT OUTER JOIN SEOREDIRECT C ON B.SEOURLKEYWORD_ID=C.SEOURLKWD_ID_ORIG
			   LEFT OUTER JOIN SEOURLKEYWORD D ON C.SEOURLKWD_ID_NEW=D.SEOURLKEYWORD_ID
			   LEFT OUTER JOIN LANGUAGE L ON B.LANGUAGE_ID = L.LANGUAGE_ID
			   LEFT OUTER JOIN (
					SELECT COALESCE(S.DISPLAYNAME, SD.DISPLAYNAME) DISPLAYNAME,
					       COALESCE(S.DESCRIPTION, SD.DESCRIPTION) DESCRIPTION, 
					       CG.IDENTIFIER, CD.CATGROUP_ID, CD.NAME, CD.KEYWORD, CD.SHORTDESCRIPTION,
					       E.SEOPAGEDEF_ID SITE_SEOPAGEDEF_ID,
					       E.PAGENAME SITE_PAGENAME,
					       E.TITLE SITE_TITLE,
					       E.META_DESC SITE_META_DESC,
					       E.META_KEYWORD SITE_META_KEYWORD,
					       E.IMAGE_ALT_DESC SITE_IMAGE_ALT_DESC,
					       E.OBJECT_ID SITE_OBJECT_ID,
					       E.STOREENT_ID SITE_STOREENT_ID,
					       F.SEOPAGEDEF_ID OVERRIDE_SEOPAGEDEF_ID,
					       F.PAGENAME OVERRIDE_PAGENAME,
					       F.TITLE OVERRIDE_TITLE,
					       F.META_DESC OVERRIDE_META_DESC,
					       F.META_KEYWORD OVERRIDE_META_KEYWORD,
					       F.IMAGE_ALT_DESC OVERRIDE_IMAGE_ALT_DESC,
					       F.OBJECT_ID OVERRIDE_OBJECT_ID,
					       F.STOREENT_ID OVERRIDE_STOREENT_ID
					  FROM STOREENTDS S
					       INNER JOIN STORE ST ON S.STOREENT_ID=ST.STORE_ID
					       INNER JOIN CATGRPDESC CD ON S.LANGUAGE_ID=CD.LANGUAGE_ID ${extCatgroupAndSQL1b}
						   INNER JOIN CATGROUP CG ON CG.CATGROUP_ID=CD.CATGROUP_ID
						   ${TI_DELTA_CG_URL_JOIN_QUERY}
					       INNER JOIN STOREENTDS SD ON ST.STORE_ID=SD.STOREENT_ID
					       LEFT OUTER JOIN (
					       		SELECT SC.OBJECT_ID OBJECT_ID,
					       			   SA.SEOPAGEDEF_ID SEOPAGEDEF_ID,
					       			   SA.PAGENAME PAGENAME,
					       			   SB.TITLE TITLE,
					       			   SB.META_DESC META_DESC,
					       			   SB.META_KEYWORD META_KEYWORD,
					       			   SB.IMAGE_ALT_DESC IMAGE_ALT_DESC,
					       			   SA.STOREENT_ID STOREENT_ID
					              FROM SEOPAGEDEF SA, SEOPAGEDEFDESC SB, SEOPAGEDEFOVR SC
					 			 WHERE SA.SEOPAGEDEF_ID=SB.SEOPAGEDEF_ID AND SA.SEOPAGEDEF_ID=SC.SEOPAGEDEF_ID
					   			   AND SA.STOREENT_ID IN (SELECT RELATEDSTORE_ID FROM STOREREL
					   			   					      WHERE STORE_ID=${param.storeId} AND STRELTYP_ID=-4)
					   			   AND SB.LANGUAGE_ID=${param.langId}
					   			   AND SC.OBJECTTYPE = 'CatalogGroup') E ON E.OBJECT_ID = 0
					       LEFT OUTER JOIN (
					       		SELECT SC.OBJECT_ID OBJECT_ID,
					       			   SA.SEOPAGEDEF_ID SEOPAGEDEF_ID,
					       			   SA.PAGENAME PAGENAME,
					       			   SB.TITLE TITLE,
					       			   SB.META_DESC META_DESC,
					       			   SB.META_KEYWORD META_KEYWORD,
					       			   SB.IMAGE_ALT_DESC IMAGE_ALT_DESC,
					       			   SA.STOREENT_ID STOREENT_ID
					              FROM SEOPAGEDEF SA, SEOPAGEDEFDESC SB, SEOPAGEDEFOVR SC
					 			 WHERE SA.SEOPAGEDEF_ID=SB.SEOPAGEDEF_ID AND SA.SEOPAGEDEF_ID=SC.SEOPAGEDEF_ID
					   			   AND SA.STOREENT_ID IN (SELECT RELATEDSTORE_ID FROM STOREREL
					   			   					      WHERE STORE_ID=${param.storeId} AND STRELTYP_ID=-4)
					   			   AND SB.LANGUAGE_ID=${param.langId}
					   			   AND SC.OBJECTTYPE = 'CatalogGroup') F ON F.OBJECT_ID = CD.CATGROUP_ID
					 WHERE ST.STORE_ID=${param.storeId}
					   AND (( S.STOREENT_ID=ST.STORE_ID AND S.LANGUAGE_ID=${param.langId} )
					    OR  ( SD.LANGUAGE_ID=ST.LANGUAGE_ID ))
			   ) P ON P.CATGROUP_ID IN (
				 SELECT C.CATGROUP_ID
				   FROM CATGRPREL R, CATGROUP C
				  WHERE R.CATALOG_ID = ${param.catalogId}
				    AND R.CATALOG_ID IN (SELECT CATALOG_ID FROM STORECAT WHERE STOREENT_ID IN
				        (SELECT RELATEDSTORE_ID FROM STOREREL WHERE STATE = 1 AND STRELTYP_ID = -4 AND STORE_ID = ${param.storeId}))
				    AND R.CATGROUP_ID_CHILD = C.CATGROUP_ID AND C.MARKFORDELETE = 0
				  UNION
				 SELECT C.CATGROUP_ID
				   FROM CATTOGRP R, CATGROUP C
				  WHERE R.CATALOG_ID = ${param.catalogId}
				    AND R.CATALOG_ID IN (SELECT CATALOG_ID FROM STORECAT WHERE STOREENT_ID IN
				        (SELECT RELATEDSTORE_ID FROM STOREREL WHERE STATE = 1 AND STRELTYP_ID = -4 AND STORE_ID = ${param.storeId}))
				    AND R.CATGROUP_ID = C.CATGROUP_ID AND C.MARKFORDELETE = 0)
		 WHERE B.STOREENT_ID IN
		       (SELECT RELATEDSTORE_ID FROM STOREREL E WHERE E.STORE_ID=${param.storeId} AND E.STRELTYP_ID=-4)
		   AND A.SEOURL_ID=B.SEOURL_ID AND B.LANGUAGE_ID=${param.langId} AND A.TOKENNAME IN ('CategoryToken')
		   AND A.TOKENVALUE = P.CATGROUP_ID) ORDER BY SEOURL_ID 
                 OFFSET ${param.offset} ROWS FETCH NEXT ${param.pageSize} ROWS ONLY
A continuación, el conjunto de resultados se pasa al​ procesador CreateCategorytURLDocumentFromDatabase para su transformación, utilizando la tabla siguiente para ​correlacionar el campo de base de datos devuelto desde el SQL anterior con un campo de índice en el índice de URL:​
​​​​Campo de índice​ Nombre​​ Tipo de campo de índice y opciones ​​Descripción:
Metadatos internos
_id internal id/store + id/url
​__meta/version/min entero Versión mínima compatible del tiempo de ejecución para trabajar con este documento
​__meta/version/max entero Última versión compatible del tiempo de ejecución que funciona con este documento
​​__meta/created fecha Fecha y hora de creación de este documento​
__meta/modified​ fecha Fecha y hora de la última modificación de este documento
​​Identificador del documento​​
​id/tienda id_string ID interno de la tienda propietaria
ID/​idioma id_string El identificador del idioma actual
id/​catalog id_string​ El identificador del catálogo de ventas actual
id/​url id_string El UUID interno de esta URL de SEO; se correlaciona con SEOURL.SEOURL_ID
​identifier/specification id_string Establecer en "URL"
​identifier/​store id_string Una cadena que identifica de forma exclusiva a la tienda propietaria
​identifier/language id_string El idioma local de esta URL
​identifier/url id_string URL de SEO relativa e identificador exclusivo para este registro - el identificador externo para TOKENVALUE y TOKENNAME especificados. Nota: no incluir la barra diagonal en esta URL de SEO
Propiedades
​token/name id_string Nombre para representar el tipo de página: StaticPagesToken, ProductToken, CategoryTokenMapped a SEOURL.TOKENNAME
​token/id id_string Identificador para el identificador de objeto o página que representa la página; se correlaciona con SEOURL.TOKENVALUE
​token/identifier id_string Identificador del identificador de objeto externo para el objeto identificado en tokenValue
estado entero Estado actual de URL: 0 - Inactiva SEOURL1 - Activa SEOURL2 - Caducada SEOURL Se correlaciona con SEOURLKEYWORD.STATUS
redirect RAW() Una URL parcial o completa a la que redirigirse si esta URL está inactiva; se correlaciona con SEOURLKEYWORD.URLKEYWORD para SEOREDIRECT.SEOURLKEYWD_NEW de registro relacionado
Metadatos de página
page/​name raw El nombre de la página; se correlaciona con SEOPAGEDEF.PAGENAME
page/type raw Este campo se utiliza para calificar el tipo de página y se utiliza junto con pageName para calificar la página: CategoryPage, ProductListPage, ProductPage, ItemPage, BundlePage, KitPage, DynamicKitPage, VariantPage
page/layout raw Identificador de diseño opcional para anular la página
page/title raw Metadatos de título de página para SEO; se correlaciona con SEOPAGEDEFDESC.TITLE
page/​​meta/description raw Meta descripción de página para SEO; se correlaciona con SEOPAGEDEFDESC.META_DESC
page/meta/keyword raw Etiquetas/palabras clave meta de página para SEO; se correlaciona con SEOPAGEDEFDESC.META_KEYWORD
page/meta/image raw Descripciones alternativas de imagen de página; se correlaciona con SEOPAGEDEFDESC.IMAGE_ALT_DESC
template/​name raw Plantilla SEO para generar este nombre de página
template/title raw Plantilla SEO para generar metadatos de título de página; se correlaciona con SEOPAGEDEFDESC​.TITLE
template/​​meta/description raw Plantilla SEO para generar esta descripción meta de página; se correlaciona con SEOPAGEDEFDESC.META_DESC
template/meta/keyword raw Plantilla SEO para generar estas etiquetas/palabra clave meta de página; se correlaciona con SEOPAGEDEFDESC.META_KEYWORD
template/meta/image raw Plantilla SEO para generar estas descripciones alternativas de imagen de página; se correlaciona con SEOPAGEDEFDESC.IMAGE_ALT_DESC
Por ejemplo, consulte los ejemplos de la etapa 1.

Etapa 2: Crear el documento de URL de producto

Esta etapa describe cómo los datos de URL de SEO de Producto se pueden transformar y cargar en el índice de la URL.

Empieza con la ejecución del SQL siguiente para recuperar datos de producto de la base de datos de Commerce:
 (SELECT A.SEOURL_ID, B.SEOURLKEYWORD_ID, B.URLKEYWORD, B.MOBILEURLKEYWORD, B.STOREENT_ID, B.STATUS,
			B.LANGUAGE_ID, C.SEOURLKWD_ID_NEW, D.URLKEYWORD URLKEYWORD_NEW, A.TOKENNAME, A.TOKENVALUE, L.LOCALENAME,
			P.DISPLAYNAME, P.DESCRIPTION, P.CATENTRY_ID, P.NAME, P.SHORTDESCRIPTION,
			P.KEYWORD, P.PARTNUMBER, P.MFNAME, P.MFPARTNUMBER, P.CATENTTYPE_ID,
			P.SITE_SEOPAGEDEF_ID, P.SITE_PAGENAME, P.SITE_TITLE, P.SITE_META_DESC, P.SITE_META_KEYWORD,
			P.SITE_IMAGE_ALT_DESC, P.SITE_OBJECT_ID, P.SITE_STOREENT_ID,
			P.OVERRIDE_SEOPAGEDEF_ID, P.OVERRIDE_PAGENAME, P.OVERRIDE_TITLE, P.OVERRIDE_META_DESC,
			P.OVERRIDE_META_KEYWORD, P.OVERRIDE_IMAGE_ALT_DESC, P.OVERRIDE_OBJECT_ID, P.OVERRIDE_STOREENT_ID
	      FROM SEOURL A, SEOURLKEYWORD B
			LEFT OUTER JOIN SEOREDIRECT C ON B.SEOURLKEYWORD_ID=C.SEOURLKWD_ID_ORIG
			LEFT OUTER JOIN SEOURLKEYWORD D ON C.SEOURLKWD_ID_NEW=D.SEOURLKEYWORD_ID
			LEFT OUTER JOIN LANGUAGE L ON B.LANGUAGE_ID = L.LANGUAGE_ID
			LEFT OUTER JOIN (
				 SELECT COALESCE(S.DISPLAYNAME, SD.DISPLAYNAME) DISPLAYNAME,
						COALESCE(S.DESCRIPTION, SD.DESCRIPTION) DESCRIPTION,
						CE.CATENTRY_ID, CD.NAME, CD.SHORTDESCRIPTION, CE.CATENTTYPE_ID,
						CD.KEYWORD, CE.PARTNUMBER, CE.MFNAME, CE.MFPARTNUMBER,
						E.SEOPAGEDEF_ID SITE_SEOPAGEDEF_ID,
						E.PAGENAME SITE_PAGENAME,
						E.TITLE SITE_TITLE,
						E.META_DESC SITE_META_DESC,
						E.META_KEYWORD SITE_META_KEYWORD,
						E.IMAGE_ALT_DESC SITE_IMAGE_ALT_DESC,
						E.OBJECT_ID SITE_OBJECT_ID,
						E.STOREENT_ID SITE_STOREENT_ID,
						F.SEOPAGEDEF_ID OVERRIDE_SEOPAGEDEF_ID,
						F.PAGENAME OVERRIDE_PAGENAME,
						F.TITLE OVERRIDE_TITLE,
						F.META_DESC OVERRIDE_META_DESC,
						F.META_KEYWORD OVERRIDE_META_KEYWORD,
						F.IMAGE_ALT_DESC OVERRIDE_IMAGE_ALT_DESC,
						F.OBJECT_ID OVERRIDE_OBJECT_ID,
						F.STOREENT_ID OVERRIDE_STOREENT_ID
				   FROM STOREENTDS S
						INNER JOIN STORE ST ON S.STOREENT_ID=ST.STORE_ID
						INNER JOIN CATENTDESC CD ON S.LANGUAGE_ID=CD.LANGUAGE_ID ${extCatentryAndSQL1b}
						INNER JOIN CATENTRY CE ON CD.CATENTRY_ID=CE.CATENTRY_ID
						${TI_DELTA_JOIN_QUERY_ATTCH}
						INNER JOIN STOREENTDS SD ON ST.STORE_ID=SD.STOREENT_ID
						LEFT OUTER JOIN (
								SELECT SC.OBJECT_ID OBJECT_ID,
									   SA.SEOPAGEDEF_ID SEOPAGEDEF_ID,
									   SA.PAGENAME PAGENAME,
									   SB.TITLE TITLE,
									   SB.META_DESC META_DESC,
									   SB.META_KEYWORD META_KEYWORD,
									   SB.IMAGE_ALT_DESC IMAGE_ALT_DESC,
									   SA.STOREENT_ID STOREENT_ID
							   FROM SEOPAGEDEF SA, SEOPAGEDEFDESC SB, SEOPAGEDEFOVR SC
							   WHERE SA.SEOPAGEDEF_ID=SB.SEOPAGEDEF_ID AND SA.SEOPAGEDEF_ID=SC.SEOPAGEDEF_ID
								   AND SA.STOREENT_ID IN (SELECT RELATEDSTORE_ID FROM STOREREL
															 WHERE STORE_ID=${param.storeId} AND STRELTYP_ID=-4)
								   AND SB.LANGUAGE_ID=${param.langId}
								   AND SC.OBJECTTYPE = 'CatalogEntry') E ON E.OBJECT_ID = 0
						LEFT OUTER JOIN (
								SELECT SC.OBJECT_ID OBJECT_ID,
									   SA.SEOPAGEDEF_ID SEOPAGEDEF_ID,
									   SA.PAGENAME PAGENAME,
									   SB.TITLE TITLE,
									   SB.META_DESC META_DESC,
									   SB.META_KEYWORD META_KEYWORD,
									   SB.IMAGE_ALT_DESC IMAGE_ALT_DESC,
									   SA.STOREENT_ID STOREENT_ID
							   FROM SEOPAGEDEF SA, SEOPAGEDEFDESC SB, SEOPAGEDEFOVR SC
							   WHERE SA.SEOPAGEDEF_ID=SB.SEOPAGEDEF_ID AND SA.SEOPAGEDEF_ID=SC.SEOPAGEDEF_ID
								   AND SA.STOREENT_ID IN (SELECT RELATEDSTORE_ID FROM STOREREL
															 WHERE STORE_ID=${param.storeId} AND STRELTYP_ID=-4)
								   AND SB.LANGUAGE_ID=${param.langId}
								   AND SC.OBJECTTYPE = 'CatalogEntry') F ON F.OBJECT_ID = CE.CATENTRY_ID
				  WHERE ST.STORE_ID=${param.storeId}
					AND (( S.STOREENT_ID=ST.STORE_ID AND S.LANGUAGE_ID=${param.langId} )
					 OR  ( SD.LANGUAGE_ID=ST.LANGUAGE_ID ))
			) P ON P.CATENTRY_ID IN (
			  SELECT C.CATENTRY_ID
				FROM CATGPENREL R, CATENTRY C
			   WHERE R.CATALOG_ID = ${param.catalogId} AND R.CATALOG_ID IN (SELECT CATALOG_ID FROM STORECAT WHERE STOREENT_ID IN
					 (SELECT RELATEDSTORE_ID FROM STOREREL WHERE STATE = 1 AND STRELTYP_ID = -4 AND STORE_ID = ${param.storeId}))
				 AND R.CATENTRY_ID = C.CATENTRY_ID AND C.MARKFORDELETE = 0
				 AND C.CATENTTYPE_ID IN ('ProductBean', 'ItemBean', 'VariantBean'))
	     WHERE B.STOREENT_ID IN
			(SELECT RELATEDSTORE_ID FROM STOREREL E WHERE E.STORE_ID=${param.storeId} AND E.STRELTYP_ID=-4)
		AND A.SEOURL_ID=B.SEOURL_ID AND B.LANGUAGE_ID=${param.langId} AND A.TOKENNAME IN ('ProductToken')
		AND A.TOKENVALUE = P.CATENTRY_ID) ORDER BY SEOURL_ID
             OFFSET ${param.offset} ROWS FETCH NEXT ${param.pageSize} ROWS ONLY

A continuación, el conjunto de resultados se pasa al procesador CreateProductURLDocumentFromDatabase para su transformación, utilizando la misma tabla para correlacionar el campo de base de datos devuelto desde el SQL anterior con un campo de índice en el índice de URL. Por ejemplo, consulte los ejemplos de la etapa 2.

Etapa 3: Actualizar tipo de página para documento de URL de categoría

Esta etapa describe cómo el tipo de página para el documento de URL de categoría puede combinarse con el tipo de página adecuado y almacenarse de nuevo en el índice de URL.

Empieza con la ejecución del SQL siguiente para recuperar datos de producto de la base de datos de Commerce:
SELECT B.SEOURLKEYWORD_ID		       
		  FROM SEOURL A, SEOURLKEYWORD B
		 WHERE B.STOREENT_ID IN
		       (SELECT RELATEDSTORE_ID FROM STOREREL E WHERE E.STORE_ID=${param.storeId} AND E.STRELTYP_ID=-4)
		   AND A.SEOURL_ID=B.SEOURL_ID AND B.LANGUAGE_ID=${param.langId} AND A.TOKENNAME IN ('CategoryToken')
		   AND A.TOKENVALUE IN (
				 SELECT P.CATGROUP_ID 
				   FROM CATGPENREL P,
						(SELECT G.CATGROUP_ID, R.CATALOG_ID
						   FROM CATGRPREL R, CATGROUP G
						  WHERE R.CATALOG_ID = ${param.catalogId}
						    AND R.CATALOG_ID IN (SELECT CATALOG_ID FROM STORECAT WHERE STOREENT_ID IN
									(SELECT RELATEDSTORE_ID FROM STOREREL WHERE STATE = 1 AND STRELTYP_ID = -4 AND STORE_ID = ${param.storeId}))
						    AND R.CATGROUP_ID_CHILD = G.CATGROUP_ID AND G.MARKFORDELETE = 0
						  UNION
						 SELECT G.CATGROUP_ID, R.CATALOG_ID
						   FROM CATTOGRP R, CATGROUP G
						  WHERE R.CATALOG_ID = ${param.catalogId}
						    AND R.CATALOG_ID IN (SELECT CATALOG_ID FROM STORECAT WHERE STOREENT_ID IN
									(SELECT RELATEDSTORE_ID FROM STOREREL WHERE STATE = 1 AND STRELTYP_ID = -4 AND STORE_ID = ${param.storeId}))
						    AND R.CATGROUP_ID = G.CATGROUP_ID AND G.MARKFORDELETE = 0) H
				 ${TI_DELTA_CG_URL_1C_JOIN_QUERY}
				 WHERE P.CATALOG_ID = H.CATALOG_ID AND P.CATGROUP_ID = H.CATGROUP_ID ${extCatgroupAndSQL1a}
			     UNION
                SELECT C.CATGROUP_ID
				  FROM CATGRPREL R, CATGROUP C
				 ${TI_DELTA_CG_JOIN_QUERY}
				 WHERE R.CATALOG_ID = ${param.catalogId} ${extCatgroupAndSQL}
				   AND R.CATALOG_ID IN (SELECT CATALOG_ID FROM STORECAT WHERE STOREENT_ID IN
						   (SELECT RELATEDSTORE_ID FROM STOREREL WHERE STATE = 1 AND STRELTYP_ID = -4 AND STORE_ID = ${param.storeId}))
				   AND R.CATGROUP_ID_CHILD = C.CATGROUP_ID AND C.MARKFORDELETE = 0 AND C.DYNAMIC = 1)
               ORDER BY B.SEOURLKEYWORD_ID
               OFFSET ${param.offset} ROWS FETCH NEXT ${param.pageSize} ROWS ONLY
A continuación, el conjunto de resultados se pasa al​​ procesador UpdatePageTypeFromDatabase para su transformación, utilizando la tabla siguiente para ​correlacionar el campo de base de datos devuelto desde el SQL anterior con un campo de índice en el índice de URL:​​
​​Campo de índice​ Nombre​ Tipo de campo de índice ​​Descripción:
page/type raw Este campo se utiliza para calificar el tipo de página y se utiliza junto con pageName para calificar la página: CategoryPage, ProductListPage, ProductPage, ItemPage, BundlePage, KitPage, DynamicKitPage, VariantPage
Por ejemplo, consulte los ejemplos de la etapa 3.

Etapa 4: Actualizar URL de categoría para el lenguaje de reserva

En esta etapa se describe cómo se pueden transformar y cargar los datos de URL DEO de categoría para el lenguaje de reserva en el índice de URL. Empieza con la ejecución de la consulta Elasticsearch siguiente en el índice de URL:
SELECT S.TOKENVALUE, SD.URLKEYWORD FROM SEOURL S, SEOURLKEYWORD SD 
			where S.SEOURL_ID IN(SELECT A.SEOURL_ID FROM SEOURL A
	           LEFT OUTER JOIN SEOURLKEYWORD B ON (A.SEOURL_ID=B.SEOURL_ID AND B.LANGUAGE_ID=${param.langId}
	                                                AND B.STOREENT_ID IN
	                                                    (SELECT RELATEDSTORE_ID FROM STOREREL E WHERE E.STORE_ID=${param.storeId} AND E.STRELTYP_ID=-4))
			   LEFT OUTER JOIN SEOREDIRECT C ON B.SEOURLKEYWORD_ID=C.SEOURLKWD_ID_ORIG
			   LEFT OUTER JOIN SEOURLKEYWORD D ON C.SEOURLKWD_ID_NEW=D.SEOURLKEYWORD_ID
			   LEFT OUTER JOIN LANGUAGE L ON B.LANGUAGE_ID = L.LANGUAGE_ID
			   LEFT OUTER JOIN (
					SELECT COALESCE(S.DISPLAYNAME, SD.DISPLAYNAME) DISPLAYNAME,
					       COALESCE(S.DESCRIPTION, SD.DESCRIPTION) DESCRIPTION, 
					       CG.IDENTIFIER, CD.CATGROUP_ID, CD.NAME, CD.KEYWORD, CD.SHORTDESCRIPTION,
					       E.SEOPAGEDEF_ID SITE_SEOPAGEDEF_ID,
					       E.PAGENAME SITE_PAGENAME,
					       E.TITLE SITE_TITLE,
					       E.META_DESC SITE_META_DESC,
					       E.META_KEYWORD SITE_META_KEYWORD,
					       E.IMAGE_ALT_DESC SITE_IMAGE_ALT_DESC,
					       E.OBJECT_ID SITE_OBJECT_ID,
					       E.STOREENT_ID SITE_STOREENT_ID,
					       F.SEOPAGEDEF_ID OVERRIDE_SEOPAGEDEF_ID,
					       F.PAGENAME OVERRIDE_PAGENAME,
					       F.TITLE OVERRIDE_TITLE,
					       F.META_DESC OVERRIDE_META_DESC,
					       F.META_KEYWORD OVERRIDE_META_KEYWORD,
					       F.IMAGE_ALT_DESC OVERRIDE_IMAGE_ALT_DESC,
					       F.OBJECT_ID OVERRIDE_OBJECT_ID,
					       F.STOREENT_ID OVERRIDE_STOREENT_ID
					  FROM STOREENTDS S
					       INNER JOIN STORE ST ON S.STOREENT_ID=ST.STORE_ID
					       INNER JOIN CATGRPDESC CD ON S.LANGUAGE_ID=CD.LANGUAGE_ID ${extCatgroupAndSQL1b}
						   INNER JOIN CATGROUP CG ON CG.CATGROUP_ID=CD.CATGROUP_ID
						   ${TI_DELTA_CG_URL_JOIN_QUERY}
					       INNER JOIN STOREENTDS SD ON ST.STORE_ID=SD.STOREENT_ID
					       LEFT OUTER JOIN (
					       		SELECT SC.OBJECT_ID OBJECT_ID,
					       			   SA.SEOPAGEDEF_ID SEOPAGEDEF_ID,
					       			   SA.PAGENAME PAGENAME,
					       			   SB.TITLE TITLE,
					       			   SB.META_DESC META_DESC,
					       			   SB.META_KEYWORD META_KEYWORD,
					       			   SB.IMAGE_ALT_DESC IMAGE_ALT_DESC,
					       			   SA.STOREENT_ID STOREENT_ID
					              FROM SEOPAGEDEF SA, SEOPAGEDEFDESC SB, SEOPAGEDEFOVR SC
					 			 WHERE SA.SEOPAGEDEF_ID=SB.SEOPAGEDEF_ID AND SA.SEOPAGEDEF_ID=SC.SEOPAGEDEF_ID
					   			   AND SA.STOREENT_ID IN (SELECT RELATEDSTORE_ID FROM STOREREL
					   			   					      WHERE STORE_ID=${param.storeId} AND STRELTYP_ID=-4)
					   			   AND SB.LANGUAGE_ID=${param.langId}
					   			   AND SC.OBJECTTYPE = 'CatalogGroup') E ON E.OBJECT_ID = 0
					       LEFT OUTER JOIN (
					       		SELECT SC.OBJECT_ID OBJECT_ID,
					       			   SA.SEOPAGEDEF_ID SEOPAGEDEF_ID,
					       			   SA.PAGENAME PAGENAME,
					       			   SB.TITLE TITLE,
					       			   SB.META_DESC META_DESC,
					       			   SB.META_KEYWORD META_KEYWORD,
					       			   SB.IMAGE_ALT_DESC IMAGE_ALT_DESC,
					       			   SA.STOREENT_ID STOREENT_ID
					              FROM SEOPAGEDEF SA, SEOPAGEDEFDESC SB, SEOPAGEDEFOVR SC
					 			 WHERE SA.SEOPAGEDEF_ID=SB.SEOPAGEDEF_ID AND SA.SEOPAGEDEF_ID=SC.SEOPAGEDEF_ID
					   			   AND SA.STOREENT_ID IN (SELECT RELATEDSTORE_ID FROM STOREREL
					   			   					      WHERE STORE_ID=${param.storeId} AND STRELTYP_ID=-4)
					   			   AND SB.LANGUAGE_ID=${param.langId}
					   			   AND SC.OBJECTTYPE = 'CatalogGroup') F ON F.OBJECT_ID = CD.CATGROUP_ID
					 WHERE ST.STORE_ID=${param.storeId}
					   AND (( S.STOREENT_ID=ST.STORE_ID AND S.LANGUAGE_ID=${param.langId} )
					    OR  ( SD.LANGUAGE_ID=ST.LANGUAGE_ID ))
			   ) P ON P.CATGROUP_ID IN (
				 SELECT C.CATGROUP_ID
				   FROM CATGRPREL R, CATGROUP C
				  WHERE R.CATALOG_ID = ${param.catalogId}
				    AND R.CATALOG_ID IN (SELECT CATALOG_ID FROM STORECAT WHERE STOREENT_ID IN
				        (SELECT RELATEDSTORE_ID FROM STOREREL WHERE STATE = 1 AND STRELTYP_ID = -4 AND STORE_ID = ${param.storeId}))
				    AND R.CATGROUP_ID_CHILD = C.CATGROUP_ID AND C.MARKFORDELETE = 0
				  UNION
				 SELECT C.CATGROUP_ID
				   FROM CATTOGRP R, CATGROUP C
				  WHERE R.CATALOG_ID = ${param.catalogId}
				    AND R.CATALOG_ID IN (SELECT CATALOG_ID FROM STORECAT WHERE STOREENT_ID IN
				        (SELECT RELATEDSTORE_ID FROM STOREREL WHERE STATE = 1 AND STRELTYP_ID = -4 AND STORE_ID = ${param.storeId}))
				    AND R.CATGROUP_ID = C.CATGROUP_ID AND C.MARKFORDELETE = 0)
		 WHERE A.TOKENNAME IN ('CategoryToken')
		   AND A.TOKENVALUE = P.CATGROUP_ID AND B.SEOURLKEYWORD_ID IS NULL) 
		   AND S.SEOURL_ID = SD.SEOURL_ID AND SD.LANGUAGE_ID = ${default.language} ORDER BY S.SEOURL_ID
	OFFSET ${param.offset} ROWS FETCH NEXT ${param.pageSize} ROWS ONLY​

A continuación, el conjunto de resultados se pasa al procesador UpdateCategoryURLFallbackFromDatabase para su transformación, utilizando la tabla en la etapa 1 para ​correlacionar el campo de base de datos devuelto desde el SQL anterior con un campo de índice en el índice de URL.

Stage5: Actualizar URL de producto para el lenguaje de reserva

En esta etapa se describe cómo se pueden transformar y cargar los datos de URL DEO de producto para el lenguaje de reserva en el índice de URL.​Empieza con la ejecución de la consulta Elasticsearch siguiente en el índice de URL:
 SELECT S.TOKENVALUE, SD.URLKEYWORD FROM SEOURL S, SEOURLKEYWORD SD 
	where S.SEOURL_ID IN(SELECT A.SEOURL_ID FROM SEOURL A
            LEFT OUTER JOIN SEOURLKEYWORD B ON (A.SEOURL_ID=B.SEOURL_ID AND B.LANGUAGE_ID=${param.langId}
                                                    AND B.STOREENT_ID IN
                                                        (SELECT RELATEDSTORE_ID FROM STOREREL E WHERE E.STORE_ID=${param.storeId} AND E.STRELTYP_ID=-4))
			LEFT OUTER JOIN SEOREDIRECT C ON B.SEOURLKEYWORD_ID=C.SEOURLKWD_ID_ORIG
			LEFT OUTER JOIN SEOURLKEYWORD D ON C.SEOURLKWD_ID_NEW=D.SEOURLKEYWORD_ID
			LEFT OUTER JOIN LANGUAGE L ON B.LANGUAGE_ID = L.LANGUAGE_ID
			LEFT OUTER JOIN (
				 SELECT COALESCE(S.DISPLAYNAME, SD.DISPLAYNAME) DISPLAYNAME,
						COALESCE(S.DESCRIPTION, SD.DESCRIPTION) DESCRIPTION,
						CE.CATENTRY_ID, CD.NAME, CD.SHORTDESCRIPTION, CE.CATENTTYPE_ID,
						CD.KEYWORD, CE.PARTNUMBER, CE.MFNAME, CE.MFPARTNUMBER,
						E.SEOPAGEDEF_ID SITE_SEOPAGEDEF_ID,
						E.PAGENAME SITE_PAGENAME,
						E.TITLE SITE_TITLE,
						E.META_DESC SITE_META_DESC,
						E.META_KEYWORD SITE_META_KEYWORD,
						E.IMAGE_ALT_DESC SITE_IMAGE_ALT_DESC,
						E.OBJECT_ID SITE_OBJECT_ID,
						E.STOREENT_ID SITE_STOREENT_ID,
						F.SEOPAGEDEF_ID OVERRIDE_SEOPAGEDEF_ID,
						F.PAGENAME OVERRIDE_PAGENAME,
						F.TITLE OVERRIDE_TITLE,
						F.META_DESC OVERRIDE_META_DESC,
						F.META_KEYWORD OVERRIDE_META_KEYWORD,
						F.IMAGE_ALT_DESC OVERRIDE_IMAGE_ALT_DESC,
						F.OBJECT_ID OVERRIDE_OBJECT_ID,
						F.STOREENT_ID OVERRIDE_STOREENT_ID
				   FROM STOREENTDS S
						INNER JOIN STORE ST ON S.STOREENT_ID=ST.STORE_ID
						INNER JOIN CATENTDESC CD ON S.LANGUAGE_ID=CD.LANGUAGE_ID ${extCatentryAndSQL1b}
						INNER JOIN CATENTRY CE ON CD.CATENTRY_ID=CE.CATENTRY_ID
						${TI_DELTA_JOIN_QUERY_ATTCH}
						INNER JOIN STOREENTDS SD ON ST.STORE_ID=SD.STOREENT_ID
						LEFT OUTER JOIN (
								SELECT SC.OBJECT_ID OBJECT_ID,
									   SA.SEOPAGEDEF_ID SEOPAGEDEF_ID,
									   SA.PAGENAME PAGENAME,
									   SB.TITLE TITLE,
									   SB.META_DESC META_DESC,
									   SB.META_KEYWORD META_KEYWORD,
									   SB.IMAGE_ALT_DESC IMAGE_ALT_DESC,
									   SA.STOREENT_ID STOREENT_ID
							   FROM SEOPAGEDEF SA, SEOPAGEDEFDESC SB, SEOPAGEDEFOVR SC
							   WHERE SA.SEOPAGEDEF_ID=SB.SEOPAGEDEF_ID AND SA.SEOPAGEDEF_ID=SC.SEOPAGEDEF_ID
								   AND SA.STOREENT_ID IN (SELECT RELATEDSTORE_ID FROM STOREREL
															 WHERE STORE_ID=${param.storeId} AND STRELTYP_ID=-4)
								   AND SB.LANGUAGE_ID=${param.langId}
								   AND SC.OBJECTTYPE = 'CatalogEntry') E ON E.OBJECT_ID = 0
						LEFT OUTER JOIN (
								SELECT SC.OBJECT_ID OBJECT_ID,
									   SA.SEOPAGEDEF_ID SEOPAGEDEF_ID,
									   SA.PAGENAME PAGENAME,
									   SB.TITLE TITLE,
									   SB.META_DESC META_DESC,
									   SB.META_KEYWORD META_KEYWORD,
									   SB.IMAGE_ALT_DESC IMAGE_ALT_DESC,
									   SA.STOREENT_ID STOREENT_ID
							   FROM SEOPAGEDEF SA, SEOPAGEDEFDESC SB, SEOPAGEDEFOVR SC
							   WHERE SA.SEOPAGEDEF_ID=SB.SEOPAGEDEF_ID AND SA.SEOPAGEDEF_ID=SC.SEOPAGEDEF_ID
								   AND SA.STOREENT_ID IN (SELECT RELATEDSTORE_ID FROM STOREREL
															 WHERE STORE_ID=${param.storeId} AND STRELTYP_ID=-4)
								   AND SB.LANGUAGE_ID=${param.langId}
								   AND SC.OBJECTTYPE = 'CatalogEntry') F ON F.OBJECT_ID = CE.CATENTRY_ID
				  WHERE ST.STORE_ID=${param.storeId}
					AND (( S.STOREENT_ID=ST.STORE_ID AND S.LANGUAGE_ID=${param.langId} )
					 OR  ( SD.LANGUAGE_ID=ST.LANGUAGE_ID ))
			) P ON P.CATENTRY_ID IN (
			  SELECT C.CATENTRY_ID
				FROM CATGPENREL R, CATENTRY C
			   WHERE R.CATALOG_ID = ${param.catalogId} AND R.CATALOG_ID IN (SELECT CATALOG_ID FROM STORECAT WHERE STOREENT_ID IN
					 (SELECT RELATEDSTORE_ID FROM STOREREL WHERE STATE = 1 AND STRELTYP_ID = -4 AND STORE_ID = ${param.storeId}))
				 AND R.CATENTRY_ID = C.CATENTRY_ID AND C.MARKFORDELETE = 0
				 AND C.CATENTTYPE_ID IN ('ProductBean', 'ItemBean', 'VariantBean'))
	  WHERE A.TOKENNAME IN ('ProductToken')
		AND A.TOKENVALUE = P.CATENTRY_ID AND B.SEOURLKEYWORD_ID IS NULL) 
		AND S.SEOURL_ID = SD.SEOURL_ID AND SD.LANGUAGE_ID = ${default.language} ORDER BY S.SEOURL_ID 
		OFFSET ${param.offset} ROWS FETCH NEXT ${param.pageSize} ROWS ONLY

​​A continuación, el conjunto de resultados se pasa al procesador UpdateProductURLFallbackFromDatabase para su transformación, utilizando la tabla anterior en la etapa 1 para ​correlacionar el campo de base de datos devuelto desde el SQL anterior con un campo de índice en el índice de URL.​

Etapa 6: Actualizar URL de SEO al documento de categoría

Esta etapa describe cómo los datos de URL de SEO de Producto se pueden transformar y cargar en el índice de la Categoría. Empieza con la ejecución de la siguiente consulta Elasticsearch en el índice de URL:
        {
	    "stored_fields": [
	        "identifier.url",
	        "token.id"
	    ],
	    "size": 10000,
	    "_source": false,
	    "query": {
	        "bool": {
	            "must_not": [
	                {
	                    "exists": {
	                        "field": "redirect"
	                    }
	                }
	            ],
	            "must": [
			{
			"terms": {
			    "token.name": [ "CategoryToken" ]
			}
	​		},
	                {
	                    "term": {
	                        "id.language": ${param.langId}
	                    }
	                },
	                {
	                    "term": {
	                        "id.store": ${param.storeId}
	                    }
	                }
	            ]
	        }
	    }
	}
A continuación, el conjunto de resultados se pasa al procesador UpdateCategoryURL​ para su transformación, utilizando la tabla siguiente para ​correlacionar el campo de base de datos devuelto desde el SQL anterior con un campo de índice en el índice de productos:​​
​​Campo de índice​ Nombre​ Tipo de campo de índice ​​Descripción:
url/​​seo raw La URL de SEO de esta entrada de categoría; asignada desde el campo identifier.url en la consulta de búsqueda anterior
Por ejemplo, consulte los ejemplos de la etapa 6.

Etapa 7: Actualizar URL de SEO al documento de producto

Esta etapa describe cómo los datos de URL de SEO de Producto se pueden transformar y cargar en el índice del Producto. Empieza con la ejecución de la siguiente consulta Elasticsearch en el índice de URL:
       ​{
	    "stored_fields": [
	        "identifier.url",
	        "token.id"
	    ],
	    "size": 10000,
	    "_source": false,
	    "query": {
	        "bool": {
	            "must_not": [
	                {
	                    "exists": {
	                        "field": "redirect"
	                    }
	                }
	            ],
	            "must": [
			{
			    "terms": {
				"token.name": [ "ProductToken"​ ]
			    }
			},
	                {
	                    "term": {
	                        "id.language": ${param.langId}
	                    }
	                },
	                {
	                    "term": {
	                        "id.store": ${param.storeId}
	                    }
	                }
	            ]
	        }
	    }
	}
A continuación, el conjunto de resultados se pasa al procesador UpdateProductURL​ para su transformación utilizando la tabla siguiente para ​correlacionar el campo de base de datos devuelto desde el SQL anterior con un campo de índice en el índice de productos:​​​
​​Campo de índice​ Nombre​ Tipo de campo de índice ​​Descripción:
url/​​seo raw La URL de SEO de esta entrada de catálogo; asignada desde el campo identifier.url en la consulta de búsqueda anterior
Por ejemplo, consulte los ejemplos de la etapa 7.

Ejemplos de la etapa 1

El código siguiente es un ejemplo de los datos de entrada para el procesador CreateCategoryURLDocumentFromDatabase.


{
  "SEOURL_ID" : 12050,
  "SEOURLKEYWORD_ID" : 12050,
  "URLKEYWORD" : "newsletters",
  "MOBILEURLKEYWORD" : null,
  "STOREENT_ID" : 10501,
  "STATUS" : 1,
  "LANGUAGE_ID" : -1,
  "SEOURLKWD_ID_NEW" : null,
  "URLKEYWORD_NEW" : null,
  "TOKENNAME" : "CategoryToken",
  "TOKENVALUE" : "10040",
  "LOCALENAME" : "en_US           ",
  "DISPLAYNAME" : "AuroraESite",
  "DESCRIPTION" : "Commerce Model Store entity",
  "CATGROUP_ID" : 10040,
  "NAME" : "Newsletters",
  "SHORTDESCRIPTION" : "Newsletters",
  "KEYWORD" : "Newsletters",
  "SITE_SEOPAGEDEF_ID" : 10001,
  "SITE_PAGENAME" : "CATEGORY_PAGE",
  "SITE_TITLE" : "<seo: CategoryName/> | <seo: StoreName/>",
  "SITE_META_DESC" : "<seo: CategoryShortDescription/>",
  "SITE_META_KEYWORD" : "<seo: CategoryKeyword/>",
  "SITE_IMAGE_ALT_DESC" : "Image for <seo: CategoryName/> from <seo: StoreName/>",
  "SITE_OBJECT_ID" : "0",
  "SITE_STOREENT_ID" : 10501,
  "IDENTIFIER" : "Newsletters",
  "OVERRIDE_SEOPAGEDEF_ID" : null,
  "OVERRIDE_PAGENAME" : null,
  "OVERRIDE_TITLE" : null,
  "OVERRIDE_META_DESC" : null,
  "OVERRIDE_META_KEYWORD" : null,
  "OVERRIDE_IMAGE_ALT_DESC" : null,
  "OVERRIDE_OBJECT_ID" : null,
  "OVERRIDE_STOREENT_ID" : null
}

El procesador CreateCategoryURLDocumentFromDatabase transforma los datos de entrada con el store id pasado de la clase NiFi FlowFile como atributo en los siguientes datos de salida de muestra:


{ "update": { "_id": "1-12050", "_index": ".auth.1.url.202006160325", "retry_on_conflict": 5, "_source": false } }
{
  "doc": {
    "template": {
      "name": "CATEGORY_PAGE",
      "title": "<seo: CategoryName/> | <seo: StoreName/>",
      "meta": {
        "image": "Image for <seo: CategoryName/> from <seo: StoreName/>",
        "description": "<seo: CategoryShortDescription/>",
        "keyword": "<seo: CategoryKeyword/>"
      }
    },
    "identifier": {
      "specification": "url",
      "language": "en_US",
      "url": "newsletters"
    },
    "id": {
      "catalog": null,
      "language": "-1",
      "store": "1",
      "url": "12050"
    },
    "page": {
      "meta": {
        "image": "Image for Newsletters from AuroraESite",
        "description": "Newsletters",
        "keyword": "Newsletters"
      },
      "name": "CATEGORY_PAGE",
      "title": "Newsletters | AuroraESite",
      "type": "CategoryPage"
    },
    "__meta": {
      "created": "2020-08-04T19:36:35.884Z",
      "modified": "2020-08-04T19:36:35.910Z",
      "version": {
        "min": 0,
        "max": 0
      }
    },
    "status": 1,
    "token": {
      "identifier": "Newsletters",
      "name": "CategoryToken",
      "id": "10040"
    }
  },
  "doc_as_upsert": true
}

Ejemplos de la etapa 2

El código siguiente es un ejemplo de los datos de entrada para el procesador CreateProductURLDocumentFromDatabase:


{
  "SEOURL_ID" : 12711,
  "SEOURLKEYWORD_ID" : 19712,
  "URLKEYWORD" : "versatil-empire-waist-sundress-aurorawmdrs-022",
  "MOBILEURLKEYWORD" : null,
  "STOREENT_ID" : 10501,
  "STATUS" : 1,
  "LANGUAGE_ID" : -1,
  "SEOURLKWD_ID_NEW" : null,
  "URLKEYWORD_NEW" : null,
  "TOKENNAME" : "ProductToken",
  "TOKENVALUE" : "10061",
  "LOCALENAME" : "en_US           ",
  "DISPLAYNAME" : "AuroraESite",
  "DESCRIPTION" : "Commerce Model Store entity",
  "CATENTRY_ID" : 10061,
  "NAME" : "Versatil Empire Waist Sundress                                                                                                  ",
  "SHORTDESCRIPTION" : "Empire waist sundress with flower print and frilly sleeves",
  "KEYWORD" : null,
  "PARTNUMBER" : "AuroraWMDRS-022",
  "MFNAME" : "Versatil",
  "MFPARTNUMBER" : null,
  "CATENTTYPE_ID" : "ItemBean        ",
  "SITE_SEOPAGEDEF_ID" : 10002,
  "SITE_PAGENAME" : "PRODUCT_PAGE",
  "SITE_TITLE" : "<seo: ProductName/> | <seo: StoreName/>",
  "SITE_META_DESC" : "<seo: ProductShortDescription/>",
  "SITE_META_KEYWORD" : "<seo: ProductKeyword/> <seo: ProductManufacturerName/>",
  "SITE_IMAGE_ALT_DESC" : "Image for <seo: ProductName/> from <seo: StoreName/>",
  "SITE_OBJECT_ID" : "0",
  "SITE_STOREENT_ID" : 10501,
  "OVERRIDE_SEOPAGEDEF_ID" : null,
  "OVERRIDE_PAGENAME" : null,
  "OVERRIDE_TITLE" : null,
  "OVERRIDE_META_DESC" : null,
  "OVERRIDE_META_KEYWORD" : null,
  "OVERRIDE_IMAGE_ALT_DESC" : null,
  "OVERRIDE_OBJECT_ID" : null,
  "OVERRIDE_STOREENT_ID" : null
}

El procesador CreateProductURLDocumentFromDatabase transforma los datos de entrada con el store id pasado de la clase NiFi FlowFile como atributo en los siguientes datos de salida de ejemplo:


{ "update": { "_id": "1-19712", "_index": ".auth.1.url.202006160325", "retry_on_conflict": 5, "_source": false } }
{
  "doc": {
    "template": {
      "name": "PRODUCT_PAGE",
      "type": "ItemPage",
      "title": "<seo: ProductName/> | <seo: StoreName/>",
      "meta": {
        "image": "Image for <seo: ProductName/> from <seo: StoreName/>",
        "description": "<seo: ProductShortDescription/>",
        "keyword": "<seo: ProductKeyword/> <seo: ProductManufacturerName/>"
      }
    },
    "identifier": {
      "specification": "url",
      "language": "en_US",
      "url": "versatil-empire-waist-sundress-aurorawmdrs-022"
    },
    "id": {
      "catalog": null,
      "language": "-1",
      "store": "1",
      "url": "19712"
    },
    "page": {
      "meta": {
        "image": "Image for Versatil Empire Waist Sundress from AuroraESite",
        "description": "Empire waist sundress with flower print and frilly sleeves",
        "keyword": " Versatil"
      },
      "name": "PRODUCT_PAGE",
      "type": "ItemPage",
      "title": "Versatil Empire Waist Sundress | AuroraESite"
    },
    "__meta": {
      "created": "2020-08-05T17:32:17.360Z",
      "modified": "2020-08-05T17:32:17.379Z",
      "version": {
        "min": 0,
        "max": 0
      }
    },
    "status": 1,
    "token": {
      "identifier": "AuroraWMDRS-022",
      "name": "ProductToken",
      "id": "10061"
    }
  },
  "doc_as_upsert": true

Ejemplos de la etapa 3

El código siguiente es un ejemplo de los datos de entrada para el procesador UpdatePageTypeFromDatabase:


{
    "SEOURLKEYWORD_ID": 12027
}

El procesador CreateProductURLDocumentFromDatabase transforma los datos de entrada con el store idpasado de la clase NiFi FlowFile como atributo en los siguientes datos de salida de ejemplo:


{ "update": { "_id": "1-12027", "_index": ".auth.1.category.202006160325", "retry_on_conflict": 5, "_source": false } }
{
  "doc": {
    "page": {
      "type": "ProductListPage"
    },
    "__meta": {
      "created": "2020-08-05T18:10:22.115Z",
      "modified": "2020-08-05T18:10:22.133Z",
      "version": {
        "min": 0,
        "max": 0
      }
    }
  },
  "doc_as_upsert": true
}

Ejemplos de la etapa 6

Etapa 4:

El código siguiente es un ejemplo de los datos de entrada para el procesador UpdateCategoryURL:


{
  "_index" : ".auth.1.url.202007052103",
  "_type" : "_doc",
  "_id" : "1-12045",
  "_score" : 1.0004607,
  "fields" : {
    "token.id" : [ "10036" ],
    "identifier.url" : [ "lighting-home" ]
  }
}

El procesador UpdateCategoryURL transforma los datos de entrada con el store id pasado de la clase NiFi FlowFile como atributo en los siguientes datos de salida de muestra:


{ "update": { "_id": "1-null-null-10036", "_index": ".auth.1.category.202006160325", "retry_on_conflict": 5, "_source": false } }
{
  "doc": {
    "url": {
      "seo": "/lighting-home"
    },
    "__meta": {
      "created": "2020-08-05T18:43:04.969Z",
      "modified": "2020-08-05T18:43:04.984Z",
      "version": {
        "min": 0,
        "max": 0
      }
    }
  }
}

Ejemplos de la etapa 7

El código siguiente es un ejemplo de los datos de entrada para el procesador UpdateProductURL:


{
  "_index" : ".auth.1.url.202007052126",
  "_type" : "_doc",
  "_id" : "1-19848",
  "_score" : 1.0004607,
  "fields" : {
    "token.id" : [ "10197" ],
    "identifier.url" : [ "versatil-strapless-sundress-aurorawmdrs-158" ]
  }
}

El procesador UpdateProductURL transforma los datos de entrada con store id, language idy catalog id pasados de la clase NiFi FlowFile como atributo en los siguientes datos de salida:


{ "update": { "_id": "1--1-10001-10197", "_index": ".auth.1.product.202006160325", "retry_on_conflict": 5, "_source": false } }
{
  "doc": {
    "url": {
      "seo": "/versatil-strapless-sundress-aurorawmdrs-158"
    },
    "__meta": {
      "created": "2020-08-05T19:07:48.668Z",
      "modified": "2020-08-05T19:07:48.683Z",
      "version": {
        "min": 0,
        "max": 0
      }
    }
  }
}