Installation RBS Change : Gestion du multisite pour les recherche
-
22/10/2010 15:55
Bonjour.
J'ai traité comme 2 sites différents, mon site institutionelle et mon blog et je désirerais que les deux reste séparé. Comment faire pour garder cette séparation multisite en terme de base de donnée?
Pour ma part je n'utilise pa solar mais mysqlindexer.
Serait-ce possible d'avoir des informations sur la configuration pour mysqlindexer et sa mise en place?
De la même façon, comment se fait-il que le contenu de mes pages ( texte dans des blocs richtext par exemple) ne soit pas pris en compte par le champs de recherche? -
Bonjour,
la séparation des données est directement faite par RBS Change, que vous utilisiez mysqlindexer ou solr : les contenus du site institutionnel ne seront accessibles que depuis le moteur de recherche du site institutionnel et ceux du blog de même.
Si vous avez des documents spécifiques indexés par contre et que vous voulez les associer à un site et pas un autre, il faut vous assurer que l'association est faite :
- Pour un module "à rubrique", c'est automatiquement fait en fonction des rubriques utilisées
- Pour un module "à dossier", il faut vous arranger pour que la méthode getWebsiteId() du service du document renvoie l'identifiant du site souhaité :
- si tous les documents d'un type donné doivent être dans le même site, vous pouvez par exemple utiliser une étiquette ou une préférence globale,
- sinon vous pouvez introduire une propriété de type modules_website/website qui permettra au rédacteur d'indiquer le site concerné.
Les blocs richtext sont pris en compte lors de l'indexation de la page. Vérifiez bien que la page est marqué "indexable".
Pour configurer mysqlindexer, voyez la FAQ d'installation
Cordialement, -
22021.3 en réponse à 22021.2 écrit par Alexandre Simon
29/10/2010 09:51
Bah en ce qui me concerne les contenus des blocs richtext ne sont pas intégrés dans la recherche et pourtant mes pages sont marquées comme "indexable".
Il y a-t-il une manipulation à faire avec les ligne de commande change pour tenter de réinitialiser ca? -
Bonjour,
si vous avez configuré l'indexation après la création de la page, c'est normal. Pour ré-indexer, utilisez la commande "indexer reset". -
22021.5 en réponse à 22021.4 écrit par Alexandre Simon
03/11/2010 09:55
Les pages étaient déjà marqué comme indexable. J'ai refait un indexer reset par acquis de conscience mais cela ne fonctionne toujours pas.
Pour vérification il suffit juste que dans mon fichier de config il y ait ces lignes?
<define name="SOLR_INDEXER_URL">http://mon.site.com/mysqlindexer</define>
<define name="SOLR_INDEXER_CLIENT">mon.site.com</define> -
Oui, c'est bien ça.
Après avoir vidé les logs (clear-log), ré-indexez et vérifiez si vous n'avez pas d'erreur dans les logs. -
22021.7 en réponse à 22021.6 écrit par Alexandre Simon
03/11/2010 14:04
Il y a effectivement une erreur dans les logs. Il est marqué plusieurs fois:Application.log a dit :
2010-11-03 13:58:09 [EXCEPTION] Exception: indexer_PDFExtractor::getText: extractor task ended with exit code 127
Si je regarde le fichier indexer.log, lui semble relativement normal(quelques problèmes avec des tags mais c'est tout). -
Bonjour,
cette exception n'est pas bloquante. Il s'agit de l'indexation des contenus PDF qui échoue, faute de pouvoir appeler correctement le binaire pdftotext.
Repérez une page dont les contenus richtext ne semblent pas indexés puis trouvez son identifiant : dans la liste principale, en haut à droite, cochez "Identifiant" pour faire apparaître la colonne.
Repérez ensuite cette page dans la table "m_mysqlindexer_index" avec la colonne document_id.
Deux possibilités :
- la page n'y est pas, une erreur a du interrompre le processus d'indexation ; si vous avez des documents spécifiques, vérifiez par exemple que leur méthodes getIndexedDocument() ne génèrent pas d'erreur fatale.
- la page y est, mais la colonne "text" ne contient pas votre texte. Vérifiez qu'il s'agit bien d'un contenu richtext de la page en regardant la colonne "content" de la table m_website_doc_page ou m_website_doc_page_i18n. -
22021.9 en réponse à 22021.8 écrit par Alexandre Simon
04/11/2010 11:42
Il s'agit bien de bloc richtext.
Pour ce qui est de la table m_mysqlindexer_index on ne trouve par contre pas le même texte.
On a pour chaque page un titre et un sous titre qui est une surcharge de la page standard. Cependant lorsque l'on regarde la colonne text de m_mysqlindexer_index il se trouve que le seul texte référencé et le texte du sous titre. -
Regardez l'implémentation de getIndexedDocument() de votre document page.
A priori, celle-ci doit être redéfinie et non achevée. Dans votre cas, une implémentation telle que la suivante doit convenir (en supposant que "subtitle" soit le nom de la propriété additionnelle) : appeler l'implémentation de base, en rajoutant la propriété "sous-titre".public function getIndexedDocument() { $indexedDoc = parent::getIndexedDocument(); if (f_util_StringUtils::isNotEmpty($this->getSubtitle())) { $pageText = $indexedDoc->getText(); $pageText .= " ".$this->getSubtitle(); $indexedDoc->setText($pageText); } return $indexedDoc; }
-
22021.11 en réponse à 22021.10 écrit par Alexandre Simon
04/11/2010 18:03
Cela semble en effet corriger.
J'ai importé tout le richtext dont je disposais et ma recherche semble fonctionelle.
Merci beaucoup pour l'aide.
PS: lors d'une recherche sur quoi se base la pertinence? car dans certain cas les mots sont exactement les mêmes mais la pertinence est quasiment nulle.