Contenido sin estructurar en el escaparate

La búsqueda de contenido sin estructurar requiere dos consultas, ya que el contenido sin estructurar se indexa en un núcleo diferente. Una consulta obtiene los ID relacionados buscando el campo unstructure del contenido estructurado, mientras que la otra consulta realiza una búsqueda en el índice sin estructurar mediante las palabras clave y el ámbito de ID generado de la primera búsqueda.unstructure

Se utilizan dos consultas porque la lista de resultados debe contener información del índice de contenido estructurado y del índice de contenido sin estructurar. Puesto que ambos resultados tienen sus propios parámetros de clasificación y paginación, se disponen en el orden siguiente:
  1. Resultados de búsqueda de contenido estructurado.
  2. Resultados de búsqueda de contenido sin estructurar.
El proceso de búsqueda invoca la interfaz de programación de aplicaciones de SolrJ para enviar la serie de consulta al manejador de solicitudes. Hay dos invocaciones implicadas:
  • La primera consulta envía ámbitos de palabra clave y búsqueda al núcleo de índice de producto para recuperar la lista de ID de entrada de catálogo. El ámbito de búsqueda también incluye el campo unstructure.unstructure
  • La segunda consulta envía la palabra clave y la lista de ID de devolución de la primera consulta en el núcleo de índice de contenido sin estructurar, para recuperar el resultado resaltado y el ID de entrada de catálogo.

Resultados de búsqueda visualizados en el escaparate

Los pasos de habilitación siguientes muestran el resultado de la búsqueda de archivo adjunto de producto en el escaparate:
  1. Registre el creador de expresiones para la nueva solicitud de búsqueda. Por ejemplo:
    
    <expression-builder>
    		<name>getCatalogNavigationAttachmentView</name>
    		<data-type-name>CatalogNavigationView</data-type-name>
    		<expression-template>{_wcf.ap='$accessProfile$';_wcf.search.profile='$searchProfile$';_wcf.search.term='$searchTerm$';_wcf.search.type='$searchType$';_wcf.search.exclude.term='$filterTerm$';_wcf.search.exclude.type='$filterType$';_wcf.search.manufacturer='$manufacturer$';_wcf.search.price.minimum='$minPrice$';_wcf.search.price.maximum='$maxPrice$';_wcf.search.facet='$facet$';_wcf.search.sort='$orderBy$';_wcf.search.meta='$metaData$'}/CatalogNavigationView</expression-template>
    		<param>
    			<name>accessProfile</name>
    			<value>IBM_Store_CatalogEntrySearch</value>
    		</param>
    		<param>
    			<name>searchType</name>
    			<value>0</value>
    		</param>
    		<param>
    			<name>searchProfile</name>
    			<value>IBM_findCatalogEntryByUnstructureField</value>
    		</param>
    	</expression-builder>
    
  2. En el archivo JSP de escaparate, señale el parámetro expressionBuilder con el creador de expresión recién creado.expressionBuilder Por ejemplo:
    
    <wcf:getData type="com.ibm.commerce.catalog.facade.datatypes.CatalogNavigationViewType" var="catalogNavigationView" 
    	expressionBuilder="getCatalogNavigationAttachmentView" scope="request" varShowVerb="showCatalogNavigationView" 
    	maxItems="${pageSize}" recordSetStartNumber="${WCParam.beginIndex}" scope="request">
    <wcf:param name="searchProfile" value="${searchProfile}" />
    	<wcf:param name="searchTerm" value="${WCParam.searchTerm}" />
    	<wcf:param name="searchType" value="${searchType}" />
    	<wcf:param name="metaData" value="${WCParam.metaData}" />
    	<wcf:param name="orderBy" value="${WCParam.orderBy}" />
    	<wcf:param name="facet" value="${WCParam.facet}" />
    	<wcf:param name="filterTerm" value="${WCParam.filterTerm}" />
    	<wcf:param name="filterType" value="${WCParam.filterType}" />
    	<wcf:param name="manufacturer" value="${WCParam.manufacturer}" />
    	<wcf:param name="minPrice" value="${WCParam.minPrice}" />
    	<wcf:param name="maxPrice" value="${WCParam.maxPrice}" />
    	<wcf:contextData name="storeId" data="${WCParam.storeId}" />
    </wcf:getData>
    
  3. En la página de tienda, analice el BOD devuelto y extraiga la información de adjunto relacionada para mostrarla en la página. Por ejemplo:
    
    <c:forEach var="attachment" items="${catEntry.attachments}" varStatus="att_status">
    <c:set var="attachmentName" value="${attachment.metaData['name']}" />
    <c:set var="attachmentPath" value="${attachment.attachmentAssetPath}" />
    <c:set var="attachmentID" value="${attachment.attachmentAssetID}" />
    <c:set var="attachmentImage" value="${attachment.metaData['image']}" />
    <a  href="${storeImgDir}${attachmentPath}" id="WC_CatalogEntryDBThumbnailDisplayJSPF_<c:out value='${attachmentID}'/>_attachment_links_11" class="h_tnav_but">
    	<img src="${jspStoreImgDir}${attachmentImage}" alt="" align="left"/>
    	<c:out value="${attachmentName}" escapeXml="false"/>
    </a>
    </c:forEach>