Habilitación de la secuenciación personalizada del valor de faceta

Puede ordenar los valores de faceta basándose en la categoría examinada. Por ejemplo, puede asegurarse de que los productos de un fabricante de computadoras encabecen la lista de resultados de búsqueda cuando el cliente busca en Electrónica. Cuando el mismo cliente hace la misma búsqueda bajo la categoría Bebés/Niños, otro fabricante puede encabezar la lista.

Por qué y cuándo se efectúa esta tarea

El orden en que se muestran los resultados puede establecerse en la fase de postproceso que sigue al proceso satisfactorio de una consulta. Puede habilitar la secuenciación del valor de faceta ampliando SolrRESTSearchFacetQueryPostprocessor en una nueva clase de posprocesador y registrándola con el perfil de búsqueda que desea utilizar.

Procedimiento

  1. Habilite la ordenación de valores de faceta.
    1. Cree una clase de posprocesador, por ejemplo SolrRESTSearchCustomFacetQueryPostprocessor. Esta nueva clase es una extensión de la clase SolrRESTSearchFacetQueryPostprocessor existente.
    2. Asegúrese de que la nueva clase de postprocesador sustituye al método protegido
      protected Map<String, String> getFacetsAndOrderedSequences(String categoryId, List<String> facetFields)

      A continuación se muestra la signatura el método protegido SolrRESTSearchFacetQueryPostprocessor predeterminado. La clase ampliada debe sustituir este método y devolver el objeto de correlación.

      /**
      * This method returns the desired ordered sequences of facet values of facet fields. 
      * In the map, <br> Facet field name is the key and comma seperated desired ordered 
      * sequence is the value. <br> 
      *  e.g :
      * mfName_ntk_cs=Borsati,Gusso,Versatil,Albini,Hermitage Collection,Luigi Valenti <br>
      * ads_f10001_ntk_cs=Gray,Blue,Green,Black  <br>
      *	
      * @param categoryId, is the current page category Id
      * @param facetFields, is the list of available facet fields whose values can be 
      * reordered. 
      * 
      * @return facetAndValueMap, is the Map object of Facet field name (Key) and desired 
      * ordered sequence (Values). <br>
      */
      
      protected Map<String, String> getFacetsAndOrderedSequences(String categoryId, List<String> facetFields)
  2. Habilite el procesador de búsqueda para que utilice la nueva lógica de secuenciación del valor de faceta.
    1. Edite o cree el archivo workspace_dir\WC\xml\config\com.ibm.commerce.catalog-ext\wc-search.xml.
    2. Añada los perfiles de búsqueda IBM_findProductsByCategory_Summary y IBM_findProductsByCategory al archivo. Cada perfil de búsqueda contiene una definición de postprocesador para la clase que ha creado en el paso 1.a. Para asegurarse de que se utiliza la clase de forma exclusiva, inhabilite el postprocesador predeterminado, SolrRESTSearchFacetQueryPostprocessor, en ambos perfiles (tal como se muestra en el texto en negrita del ejemplo siguiente).
      <_config:profile name="IBM_findProductsByCategory" indexName="CatalogEntry">
         <_config:query>        
           <_config:postprocessor 
                classname="com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTSearchFacetQueryPostprocessor" 
                enabled="false"/>                               
           <_config:postprocessor 
                classname="com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTSearchCustomFacetQueryPostprocessor" />       
         </_config:query>
      </_config:profile>	
       	
      <_config:profile name="IBM_findProductsByCategory_Summary" indexName="CatalogEntry">
         <_config:query>        	
           <_config:postprocessor 
                classname="com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTSearchFacetQueryPostprocessor" 
                enabled="false"/>
           <_config:postprocessor 
                classname="com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTSearchCustomFacetQueryPostprocessor" />                                          
         </_config:query>
      </_config:profile>