Charte Intranet Search - Refonte de la recherche


Cette page ne doit être appliquée que si le script de migration assistée vous demande de passer la migration manuelle skin.20230314.INTRANETSEARCH.searchservice

Le service de recherche global a été refondu dans la version 1.4.0 de la charte Intranet Search.

Une migration des données est nécessaire, ainsi qu'une potentielle migration graphique.

  1. Modification des services "Kiosques", "Petites annonces" et recherche générale
  2. Critères du moteur de recherche global
  3. Surcharge de la vue résumé des types de contenus "Document PDF" et/ou "Petites annonces"

Modification des services "Kiosques", "Petites annonces" et recherche générale

Pour le service de recherche sur les types de contenus "Documents PDF" avec la vue "Kiosque", la nouvelle vue "Magasine" (pdfDocument-kiosk.xsl) doit être utilisée pour les contenus.

Pour le service de recherche sur les types de contenus "Petites annonces" avec la vue "Petites annonces", la nouvelle vue "A la une" (ads-card.xsl) doit être utilisée pour les contenus.

Le service de recherche général quant à lui, comporte désormais 2 vues possibles:

  • "Par défaut" avec pagination
  • "Par défaut (avec pagination sous forme d'un simple bouton "Plus de résultats")" avec un bouton "Charger plus de résultat"

C'est la 2e vue qui doit être choisie pour garder le comportement de la version 1.3.0 ou inférieure sur la pagination.

Vous pouvez exécuter le script suivant pour mettre à jour vos services existants (attention à personnaliser le nom de votre site):

const siteName = "intranet-search"; // A PERSONNALISER
  
  let searchServiceToUpdate = [             
    {
      "id": "org.ametys.web.service.SearchService",
      "xslt": "pages/services/search/search-default.xsl",
      "params": {
        "xslt": "pages/services/search/search-more-results.xsl"
      }
    },
    {
      "id": "org.ametys.web.service.SearchService",
      "xslt": "pages/services/search/search-kiosque.xsl",
      "params": {"contentView": "kiosk"}
    },
    {
      "id": "org.ametys.web.service.SearchService",
      "xslt": "pages/services/search/search-ads.xsl",
      "params": {"contentView": "card"}
    }
]

updateServices(Repository.session, siteName, searchServiceToUpdate);
 updateServices(Repository.liveSession, siteName, searchServiceToUpdate);

function updateServices(s, siteName, toUpdateServices)
  {
    let count=0;
    for (var i=0; i < toUpdateServices.length; i++)
    {
      let serviceId = toUpdateServices[i].id;
      let xslt = toUpdateServices[i].xslt;
      let query = "//element(" + siteName + ", ametys:site)//element(*, ametys:zoneItem)[@ametys-internal:service='" + serviceId + "'" + (xslt ? " and ametys:service_parameters/@ametys:xslt = '" + xslt + "'" : "") + "]";
      Repository.query(query, true, s).forEach(function(zoneItem) {
        try
        {
          let params = toUpdateServices[i].params || {};
          let serviceParams = zoneItem.getServiceParameters();
          for (var paramName in params)
          {
            Repository.helper.setModelAwareValue(serviceParams, paramName, params[paramName]);
          }
          count++;
        }
        catch(e)
        {
          Ametys.console.error(`Fail to update service ${serviceId} with view ${params.xslt || xslt} for zone item ${zoneItem.getNode().getPath()} for site ${siteName}\n` + e);
        }
      });
    }

s.save();
    Ametys.console.info(`${count} services have been updated for site ${siteName} in workspace ${s.getWorkspace().getName()}`);
  }

Critères du moteur de recherche global

Le champ de recherche général (disponible sur la page d'accueil et le bandeau des pages intérieure) est désormais basé sur le critère "Titre ou texte intégral" au lieu de "Texte intégral".

Si ce n'est pas déjà le cas, le moteur de recherche principal (page étiquetée "Page de recherche), doit donc être configurée avec comme 1er critère "Titre ou texte intégral"

Toute surcharge de la charte pour utiliser "Titre ou texte intégral" au lieu de "Texte intégral" dans les champs de recherche, peut être supprimée.

Surcharge de la vue résumé des types de contenus "Document PDF" et/ou "Petites annonces"

La vue "Résumé" de ces types de contenus est maintenant réservé au rendu des résultats de recherche.

Si la vue "abstract" de ces types de contenus a été surchargée, elle doit être déplacée sur les nouvelles vues "Magasine" (pdfDocument-kiosk.xsl) et "A la Une" (ads-card.xsl)

Par exemple, si votre charte contient une surcharge stylesheets/content/pdfDocument/pdfDocument-abstract.xsl :

  • renommer le fichier stylesheets/content/pdfDocument/pdfDocument-kiosk.xsl
  • si le fichier importe pdfDocument-abstract.xsl de la charte noyau, remplacer par l'import de pdfDocument-kiosk.xsl 
Retour en haut