TYPO3 Solr - Création d'une facette à partir d'un uid

Voici ici un petit snippet permettant de récupérer dans une facette la valeur d'un champ à partir d'un uid. Ici mon exemple concerne une plateforme TYPO3 multi-sites disposant d'un moteur de recherche commun. J'utilise cette facette pour permettre à l'utilisateur de filtrer les résultats de recherche en fonction des sites qui l'intéressent.

L'indexation

Dans un premier temps voici la configuration permettant d'indexer l'uid de la page racine de votre site :

plugin.tx_solr {
   index {
      queue {
         pages {
            fields {
               rootpage_intS = TEXT
               rootpage_intS.data = leveluid:0
            }
         }
      }
   }
}

La facette

Voici maintenant la configuration de la facette à utiliser :

plugin.tx_solr {
  search {
    faceting {
      facets {
        rootPage {
          label = Site
          field = rootpage_intS

          renderingInstruction = RECORDS
          renderingInstruction {
              # optionValue récupère la valeur de la facette en cours
              source.field = optionValue
              tables = pages
              conf.pages = TEXT
              conf.pages.field = title
          }
        }
      }
    }
  }
}

Voilà tout simplement comment créer une facette récupérant une valeur à partir d'un uid. Vous pouvez bien évidemment adapter le code pour récupérer tout autre type d'enregistrement et de champ. N'hésitez pas à poser des question / partager vos idées dans les commentaires. 

commentaires générés par Disqus