eZFind et la recherche des mots clés
Par Anselme Clavier le 26 octobre 2010EzFind, moteur de recherche de référence sous eZ Pubilsh, est basé sur le moteur de recherche Solr (http://lucene.apache.org/solr/). Cette extension encapsule une partie des fonctionnalités proposées par Solr pour rendre son intégration simple et rapide sous eZPublish. Des fichiers de configuration permettent néamnoins de paramétrer un ensemble d’éléments pour l’adapter à ses besoins.
Nous nous intéresserons ici à la recherche des mots clés, datatype “Keywords” eZ Publish :

Attribut de classe “Keywords”
Ce type de données permet d’associer des mots clés, séparés par des virgules, aux classes de contenus eZ, par exemple :

Ces mots clés peuvent bien entendus être indexés par eZ Find et donc remontés par le moteur de recherche. Cependant, les mots clés sont traités comme une chaine unique, c’est à dire qu’un mot clé composé est traité comme un seul mot.
Par exemple, le mot clé “mouton bleu” n’est retourné par le moteur de recherche qui si l’on cherche la chaîne exacte “mouton bleu”, “mouton” ou “bleu” ne retournent rien. C’est un comportement qui peut être acceptable dans certains cas mais gênant dans d’autres. Si l’on souhaite retourner les contenus liés au mot clé “mouton bleu” en cherchant “bleu” ou “mouton” ou “mouton bleu” 2 solutions sont possibles :
Une première solution est de saisir les mots clés mot par mot. Par exemple, plutôt que de saisir le mot clé “mouton bleu” il est possible de saisir “mouton, bleu”.
Une deuxième solution est de modifier le paramétrage par défaut d’eZFind. Dans le fichier ezfind.ini le bloc [SolrFieldMapSettings] permet de modifier la correspondance par défaut entre les attributs eZPublish et les attributs Solr. Par défaut, les mots clés sont traités comme des mots clés sous Solr :
DatatypeMap[ezkeyword]=keyword
En spécifiant que les mots clés doivent être traités comme du texte, les mots clés seront traités comme du texte standard sous Solr :
DatatypeMap[ezkeyword]=text











